*5chより(旧2ちゃんねる)
こんにちは、ハッカーになりたい、ちびくじらです。今日は、プログラミングスクールを利用して、2ちゃんねるまとめiPhoneアプリを作った体験談をしていきたいと思う。
いちおう、このページでは、
▶ プログラミングスクールを検討している人
▶ 2ちゃんねるまとめアプリを作りたい人
に向けて、
▶ プログラミングスクールを利用した結果こういうアプリが作れるよ
という話をしていきたいと思う。
プログラミングスクールで2ちゃんねるまとめアプリを作った体験談
経緯について
前回に記事もしたけど、このInstagramのAPIをたたいてアイドル画像をクラウドに保存するという処理をするアプリを作ってみた。
で、このAPIを叩いて、XMLで表示されたものを加工するという技術をWEBアプリ(CakePHP)で作ったわけなのだが、この技術をObjective-CをつかったiPhoneアプリでも作れることができると思ったわけなのだ。
そうして、プログラミングスクールのメンターとこういうアプリを作りたいですと相談して作っていくことにした。そうして考えたのが、2ちゃんねるまとめアプリを作ってみるというもの。
2ちゃんねるまとめアプリの仕様について
当時は、モバイルアプリのDBを利用する方法がわからなかったので、RSSの読み込み処理と、お気に入り機能を作るために、SQLIteを利用してみることにした。
そうして、決まったのが以下の仕様だ。
【仕様】
▶ RSSの読み込み機能
▶ お気に入りスレの保存
そうして、この企画を立てて作っていくことになった。
2ちゃんねるまとめアプリの実装について
実装では、以下の箇所を中心に作り込むことになる。
▶ XMLの取得
▶ お気に入りスレの保存
XMLの取得
まず、2ちゃんねるまとめアプリで一番の肝となる部分がここ。AFNetworkingのライブラリをgithubから入手して、AFNetworkingを使って、まずはXMLが取得できるように対応する。
そうして、XMLを取得できたら、次にそのXMLを加工して、UITableViewに取得した情報を貼り付けていくイメージ。ここで、うまくUITableViewに貼り付けるために、取得したデータをそのまま使えないときは、一旦、変数で特定の箇所を取り出した後に、正規表現でXMLを加工する処理が必要だったが、なんとか上手く行かせることができた。
お気に入りのスレの保存
そうして、次にお気に入りのスレを保存することになるが、これは、SQLiteでサムネイルの画像をバイナリで保存して、URLと題名を保存することにした。そうして、また保存した内容を再表示するという方法にしていた。
ここでは、バイナリのデータにエンコードしたものを、SQLiteに入れて、表示するときにデコードするという処理が少々つまずく部分もあったが、なんとか上手くいくことになる。
作成期間について
作成期間としては、企画からテスト完了まで1週間くらいだったと思う。昼間は社内SEやっていて仕事しつつのイメージ。詰まる部分があってもプログラミングスクールのメンターに聴いて即解決していたから、特に詰まって時間かかったところは少なかった。
アプリの公開について
そうして、アプリができたあとにリリースをすることになるのだが、ここで、2つ問題が発生した。
簡単なアプリはNG
まず、RSSのビュアーは簡単なアプリということでNGをくらうことになる。たしかに、類似のアプリがたくさんあるため、追加で機能を拡張する方法を考える必要があった。
エロ広告がNG
次に、RSSの飛び先の広告にエロ広告が表示されているものがあった。この対応としては、今となってはエロ広告がない2ちゃんまとめサイトを取得すればいいだけなのだが、このエロ広告が出ているのはどうしようもないとそこで開発をストップしてしまった。というのも、当初の目的はAFNetworkingとSQLiteの使い方をマスターするためであったため。
今振り返ると改善できたこと
当時を振り返ると、リリースを前提に対応していくのであれば、しっかりと企画を寝る必要があったなと。競合を分析して、2ちゃんねるアプリで1位を狙う戦略でリリースしないと、ダウンロード数は数十で終わってしまうと思う。
また、エロ広告の部分については、対応案が2つくらいある。
▶1つ目はエロ広告のないまとめサイトを使うこと
▶もう1つは、自前で2ちゃんまとめサイトのまとめサイト(アンテナサイト)を作って、そこにアクセスするようにすること
そうすると、アプリがリジェクトされずにオッケーだったかも。作るときは、そこも見越して作らないといけないなと改めて思う。
プログラミングスクールを利用して身についたスキル
色々詰まる点は、質問していたのだが、今回の2ちゃんねるまとめアプリを作ってみて、予定していたAFNetworkingの技術と、SQLiteを使った技術の習得を最低ラインとしてできた。更に深いところまでいくと、メモリの最適化だったり、DBの高速化まで突き進まないといけなかったりするが、これは別の機会ということで対応していくことになる。もし、AFNetworkingであったり、SQLIteを勉強したいと思っている人は、2ちゃんねるまとめサイトアプリを作ってみるといいかもしれない。