プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

ヤフー vs クラスメソッド「iOS 炎の7番勝負」に参加してきた

表題の通りです。

http://connpass.com/event/5159/

これに参加してきました。

今日の内にブログ更新したいので全く内容が無い感じになってしまいますが、イベントの内容は以下の方の参加記事を読むとまとまっていていいと思います。

簡単に感想でも書くとすると

  • 対決形式が予想以上に面白かった
    • 面白いと思った時にボタン連打するのが割と一体感を高めていて良かったと思う。
    • でも、今後同形式のイベントするときには今回のようなアプリだとJavaScript等でチートできそうな気がしたので、そこら辺のケアは必要な感じがしました。
  • 一つの発表が5分だけだったので、そこはちょっと物足りなく感じました。
    • 私は初心者なのでまだいいですが、少しでもツッコんでiOSに取り組んでいる人には物ないようだったのかも足りないないようだったのかも?
    • でもiBeaconは全く触ったことなかったので発表自体楽しかった。他は色んなところでちょくちょく名前を目にする機会多かったので。
  • iBeaconの発表をしていた人が両者とも内定者とのことでしたが、どちらも社員と間違えるほどの発表クオリティで素晴らしかったですね。

ヤフーさん、クラスメソッドさん、面白いイベントありがとうございました。

幾度となくiOSプログラミングに挑戦してその度に挫折して思うこと

アプリ作ってリリースするまでの道のり遠すぎだろ

もうこの一言ですむんですが、それだけだとブログ書いている意味がないので日付が変わる前にザラっと書くのに挑戦してみます。

去年の年末近くの記事にも書きましたが、下に載せる本を使ってまたiOSプログラミングを再開したんですね。

もう何度目の挑戦になるのかよく分からないんですが、挑戦した数は多分5回くらいは超えていると思います。

で、毎回その度に挫折するわけです。

そもそも目標を持って新しいことを始めた後、その目標を達成すること自体が難しいと言えば難しいし稀なことなのかもしれませんが、それにしたって躓きすぎだろうと前から思っていたわけですよ。

今回は上の書籍に書いてあるコードを写経してビルドして動かす、という手順で勉強しているんですが、iOSプログラミング(というかスマホ関連のプログラミング)の躓きがどういった原因で発生するのか、何となく考えたことがあるのでアウトプットして頭の中を整理したくなりました。

考えた原因を列挙

日付が変わる前に更新しよう、そういう制限かけたので尻切れトンボにならないように、思いついた原因だけザッと列挙してみます。

  • Objective-Cが分かっただけではアプリの形にならない
    • 多分最大の原因
    • 初心者はObjective-Cにだけ躓くのではなくて「Xcodeの使い方」「イベント駆動の概念」「iOSプログラミングする際のお作法」といった複数の箇所で躓く
    • で、初心者は初心者だからこれらの躓きの違いが区別できず、頭の中で整理がつかないことが多い(少なくとも私は)
  • 「実現したいこと」と「自分に可能なこと」のバランスを取って実装するのが難しい
    • サンプルコードは理解できて自分で書けても、自分がやりたいことを実現するにはどうしたらいいか分からなかったり、あるいは実現したいことが壮大すぎて自分の実装力では実現できない事態に陥る
    • 別にiOSとかスマートフォン関係のプログラミングに限らない事だと思うが、参入者多いから挙げておく
  • プログラミング != アプリリリース
    • 中途半端にプログラミングを知っている人の場合(私とか)、内部のプログラミングに凝り出して、アプリを完成させることよりもコードを書く方に目がいってしまう
    • …と書いたが、別にこれ、スマホの話しに限らないですね。
  • もはや世の中には便利なアプリがたくさん既に存在する
    • いざ自分で作ろうと思ったら、だいたい自分の欲しいものは既にアプリが出てたりしたり。
    • よりニッチなものとかシンプルなものを作れば需要がある場合もあるが、その場合「不必要なものを捨てる・省く力」が必要なので、初心者が実践するには厳しい場合が多い

…別にiOSとかスマートフォン特有の原因じゃなくてどこでも出てくる話ばっかりになってしまいましたが、とりあえず罠が多いということですよ!

残り1分切ったのでココまでにします!

同期エラーなどでiPhoneから緊急地震速報の設定が消えてないかチェックしてみよう

先日起きた緊急地震速報の誤報、各方面大変だったみたいですね。 電気的ノイズが誤報の原因だったようですが、個人的には抜き打ち防災訓練になって良かったと思います。

緊急地震速報 電気的「ノイズ」影響か NHKニュース 緊急地震速報、過去最大規模の“誤報” 原因は「地震計のノイズの途切れ」 - ITmedia ニュース

で、この緊急地震速報、私のiPhone4Sで鳴らなかったんですよね。*1

「あれ?以前からずっと緊急地震速報の通知はオンにしてるのにおっかしーなー」と思ってみてみたら、何とiPhoneの「設定アプリ」-「通知」の一番下を見ても緊急地震速報の設定自体が消えているという事態が発覚しました。

これがその時呟いたツイートと証拠のスクリーンショットです。

一応私はガラケーとiPhone2台持ちなので、極論すればiPhone緊急地震速報が設定できなくてもそこまで痛くないですが、とはいえ設定できるはずのものが出てこなくて、それが緊急地震速報とかクリティカルなものなので「これはさっさと対処しないとマズいな」と思ってアップルのサポートに電話かけました。

で結論。

もう少し詳しく言うと、

  1. iPhoneのバックアップをPCに取る*2
  2. iPhoneの設定アプリからiPhoneの全ての設定とコンテンツを初期化する
  3. iPhoneをPCに繋げて、iTunesを使用してバックアップからの復元を行う

という、まあ、定番の処理を指示されたのでやったら、無事設定に緊急地震速報が戻ってきたので、一安心。

サポートの人が言うには、「同期時におかしくなったんだと思います」とのことでした。そう言われてみれば、一度だけiTunesで同期作業中にiTunesが固まって同期が不完全な状態で終わったことがあったので、その時におかしくなったんだろうな、というのが今のところの結論です。

緊急地震速報はクリティカルな箇所だと思うので、今回の誤報を良い機会にして、今まで一度でもiTunesでの同期でエラーを起こしたりした人は一回iPhone緊急地震速報の設定があるかどうかチェックしてみるといいと思います。

*1:翌日Twitterで検索したら、別にキャリアや端末に限らず、「この端末には速報来たけど、こっちには来なかった」というツイートがそれなりにあったので、色々な原因があるのでしょう。

*2:今回は暗号化する方式で取りました。

2年間、ケースを付けずに戦い抜いた我が愛しのiPhone 3GS

本当は新年明けて幸先良く元日にこの記事をアップしたかったんですが、手続きなり設定なりをやっている内に過ぎてしまいました。ようやく準備が出来たので、私のiPhone 4S乗り換え記事、というか3GSお疲れ様記事を始めます。

何で4S乗り換え記事ではなく、3GSお疲れ様記事なのか? それはひとえに、iPhone 3GSを契約した2010年1月から新しく4Sを契約した2011年12月まで約二年間の間ずっと私は3GSをケースを全く付けずに使っていたからです。

大半のiPhoneユーザーはiPhoneを買うのと一緒にケースも買って装着していることと思います。しかし私は故スティーブ・ジョブズ氏が言ったと言われる「指紋が付いたら拭けばいいだろ」「アンタも年が経てば老いるだろ?」という発言*1に無意味に感化され、全くケースを使わずに使うことを決めていたのです。

その無駄な決意を二年間もの間続けていたらどうなったのか? それをお見せしたいと思います。追悼の意味も込めて、3GSから乗り換えたiPhone 4Sで撮影した写真でお送りしますね。

ああ3GSよ永遠なれ…

百聞は一見に如かず。まずは裏面の様子を御覧ください。

どうでしょう?この歴戦の勇者達が負ったかのような生々しい傷跡。3GSを使ったことがある人でも分からないかもしれませんが、どうやらiPhone 3GSの表面には何か薄いコーティングがあるようで、それがところどころはげているのがよく分かりますね。特にAppleのロゴの部分に斜めに傷が入っているのが歴戦の勇者達を彷彿とさせます。

…単に私が3GSと家の鍵を同じポケットに入れていたからこうなったということは内緒です。

次は表面。

表面は大して傷が付いてないんですね。傷が付いているように見えるかもしれませんが、表面にはパワーサポート製のアンチグレアフィルムを付けていて*2、そのフィルムに付いた傷やはがれかかった部分がそう見えるだけです。

次からは我が愛しの3GSが負った名誉の負傷を取り上げます。

まずは音量ボタンから。

( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)

…そう、なんと3GSの音量ボタンは取れてしまっているのです!!

何故こうなったかというと、ケースを付けないでつかうものだから、良く手の中から滑り落ちて落とすことを何回も繰り返したからです。10回はやらなかったけど、多分5回以上は落としたと思います。

音量ボタンが取れた当初は爪を立てて音量ボタンがあったところを押せばまだ音量調節できたんですが、もう一回落としたときにiPhoneの接合部分がずれてしまったようで反応しなくなりました。上記の写真2枚をよく見てもらうと少しずれて中身がちらっと見えているのが分かると思います。

よってソフトウェアでの音量調節しか出来ない状態です、今でも。

何回も落とすお馬鹿なオーナーの仕打ちによく耐えてくれました…

では次に参ります。次はスリープボタン(っていうんでしたっけ?)まわりから。

( ゚д゚)

(つд⊂)ゴシゴシ

(;゚д゚)

(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)

…そう、こちらもまた名誉の負傷を負っており、iPhone 3GSのあられもない中身がパンチラのごとく見えてしまっているのです!!

例によってこれも3GSを落としたことでスリープボタンの周りの部品が取れたのですが…落下ダメ、ゼッタイ!

こんな状態でもちゃんとスリープボタンは機能するところは偉いと思います。オーナーは馬鹿でも従業員は優秀です。

シャイニングガンダムの称号をあげたいくらい頑張ったね、3GSよ…

我が愛しのiPhone 3GSの融資、もとい勇姿はいかがだったでしょうか?

これだけボロボロになりながらも戦い抜いたiPhone 3GSの姿に、私は小学生の頃見ていたアニメ『機動武闘伝Gガンダム』のシャイニングガンダムを思い出してしまいました。

あれもデビルガンダム戦、マスターアジア戦を経てボロボロになった後*3、乗り換え機であるゴッドガンダムに戦闘データを移してゴッドガンダムにお姫様抱っこされて役目を終えているわけですが、戦闘データを移して役目を終えるというところが3GSから4Sへの移行とかぶり、そしてボロボロの姿がシャイニングガンダムの最期とかぶるのです。

その勇敢な姿と戦い抜いた勇気に敬意を表したいと思います。

ありがとう、我が愛しのiPhone 3GS…また活躍する時を楽しみにしてるよ…

*1:出典は忘れました!

*2:画面だけは汚くなるのは嫌だったので付けました

*3:記憶が不確かです。だって15年以上?も前のことですから

iOSに移植されたノベルゲーム『428 〜封鎖された渋谷で〜』が面白くて寝不足になるほどだった

いや、もうなんていうか、表題の通りなんですが、11月になってから数日したあたりの日にいつものごとくはてなブックマークでトレンドになっているニュースを見ていたら、このゲームがiOSに移植されるというニュースを見たんですね。確か見たのはファミ通の以下の記事だったと思います。


【速報】iOS版『428~封鎖された渋谷で~』は明日2011年11月3日配信予定! 祝日全部あてても惜しくない名作ですよ! - ファミ通.com


私が見た記事が上記のものだったかどうかは記憶に無いんですが、とりあえず、この『428』というゲームが高評価だったのは次世代機*1を遊んでいない私の耳にも入ってくるほどでしたので、気になっていました。まあ、ファミ通クロスレビュー40点満点は大袈裟にしても、評価される理由はあるくらい面白そうだから遊んでみたいなあ、とは思いつつ、だからといって据え置き機を買う気になれずに遊んでいなかったわけです。


で、そんなこんなでiOSに移植されると聞いて、早速買って遊んでみました。1800円という値段も、普通のゲーム機の値段と比べれば安い方だろうという意識でいることや各種iOSのノベルゲームも買っている*2ことも手伝い、買うことに大して抵抗もなかったわけです。


遊んでみた結論。確かに面白い!!!


遊びはじめて主人公5人が出揃ったところで事件の成り行きが気になってきて、気がついたらどんどん睡眠時間を削って遊んでました。おかげで最近身体にガタが来ています。


一応本編はエンディングまで終わった感想ですが、凡百のドラマよりもずっと面白いと思いました。選択肢をミスするとあっという間に死んだりBAD ENDを迎えるので、先に進めたときの喜びは大きいし、エンディングまで辿り着いたときの達成感もありましたね。


主人公だけで無く、登場人物全員がどこかしらアクがあるんですが、事件の進み具合と平行して時折見せるエピソードや登場人物の気持ちがあいまって感情移入具合が半端無かったです。特に主人公の一人の大沢賢治と御法川実のエピソードが個人的にヒットしました。大沢の方は担当刑事の梶原のやりとりもよかったですし、御法川の方は原稿を完成させることに対する思いや勢いに感情移入しましたね。


プレイ済みの人がオススメするのもよくわかる、というところです。


基本的に実写のサスペンスドラマ(ただし静止画中心、声は無し)なので、「アニメ声は生理的に気持ち悪い」という私の母のような人にも安心して進められるゲームだと思います。


428 〜封鎖された渋谷で〜 1.0.1(¥1,800)App
カテゴリ: ゲーム, ブック, ミュージック, アドベンチャー
販売元: CHUNSOFT - CHUNSOFT Co., Ltd.(サイズ: 1,466.4 MB)
全てのバージョンの評価: (130件の評価)
+ iPhone/iPadの両方に対応


お試しのLite版もあります。…がBGM無かったりとか、本編のものより劣化が目立つらしいのでそこは注意。


428 〜封鎖された渋谷で〜(Lite) 1.0.1(無料)App
カテゴリ: ゲーム, ミュージック, ブック, アドベンチャー
販売元: CHUNSOFT - CHUNSOFT Co., Ltd.(サイズ: 16.4 MB)
全てのバージョンの評価: (23件の評価)
+ iPhone/iPadの両方に対応

*1:WiiとかXboxとかPS3のこと。PS2より後はゲームをやっていないため、未だにこういう認識。

*2:Steins;Gateとかキラ☆キラとかMemories Offとか。Steins;Gate以外は安くなったときに買いました。

"iPhone Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)"でプログラミング再開!

全てはタイトルに書いたとおりです。この本を使ってプログラミングを久しぶりに行っています。

iPhone Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)

iPhone Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)

何でプログラミングを再開したかというと、やったのはちょっと前になるんですが、使っているパソコンのOSをSnow Leopardにアップグレードして開発環境を整えられるようになったから「よし、それじゃやってみるかな?」という気が向いてきたためです。環境は重要なんですよ。環境は重要なんです。大切なので二度言いました。

技術書であることと教育プログラムから発した本であることが要因なのか、英語であっても平易に読めるのがいいですね。しかもわかりやすい! やり始めと言うことも手伝い、モチベーションが上がっております。

で、最終的な目標はAppStoreにアプリを出す!というところなのですが、まだまだ道は遠そうです。

え?何のアプリを出すのかって? それは秘密!…にすることもないのですが、モチベーション維持のため言わないでおいておきます(←誰もそんなことは聞いていない、というツッコミ希望!)

ヒント:このブログ