LGTMcamというiOSアプリをリリースと同時にgithubに公開しました

f:id:razokulover:20140326214018p:plain

さきほど「LGTMcam」というiOSアプリをリリースしました。

https://itunes.apple.com/ja/app/lgtmcam/id839859967?l=ja&ls=1&mt=8

できることは、

①写真撮影

②撮った写真へLGTMの文字をスタンプ(画像をtouchすると1つだけスタンプできます。)

SNSへシェア

だけです。

需要が無いのか、app storeでLGTMと検索すると一番最初にでてきます...。

はじめてのiOSアプリ

これまでObjective-C覚えないといけないし...という理由からなんとなくiOSアプリを避けてきました。

が、ネイティブアプリが作れると、このエントリでも書いた表現力がいっそう高まると感じたので思い切ってiOSアプリの制作にチャレンジしてみました。

最初は「Objective-C?なにこれ???アットマーク多すぎるし引数もどこが区切りかわからぬ...」状態だったのですが、もがいてたら3日ほどでstore申請までできました。(developer登録はむかーしのときにしてたのでスキップしてます)

集中してやってみると案外できるなーじぶんすげー、って話ならまあ簡単なんですが、正直3日でできたのはじぶんすげーわけではなく環境のおかげでした。

ぼくがむかーしに、といっても1年ほど前に検索したときよりも情報がたくさん溢れるほどあるし、ARCのおかげで以前よりメモリ周りに気をつかわなくてよくなったなどなど開発者の参入障壁が格段に下がってるなーという印象を受けました。

なんというか、これはもうパズルですね。

ぼくがつくったレベルのアプリなら検索してでてきた情報源のソースを軽く弄って繋ぎ合わせるだけのパズルです。

学部時代の教養科目でレポートが得意だった人なら誰でもできそうな感じ。

ただ、これだけ苦も無くアプリをリリースできたのはほんとに先人達のおかげなので、今回はこのアプリのソースをすべてgithubで公開するということでなんとか報いたいと思います。感謝!

https://github.com/YuheiNakasaka/LGTMcam

この中のプロジェクトを展開して起動してごにょごにょ自身の設定をしたらたぶんapp storeに申請できます。ほんとに申請したときのアプリそのまんまです。

これを見ると、どれだけぼくがパズルのようにLGTMcamを作っていったかを確認してもらえると思います。

メイン部分はほぼViewController.mに詰め込んでるので読みやすいです...すいません。

参考にした記事等まとめ

以下ではそのパズルのようにつなげ合わせた記事からリリースの手順に至るまで参考にさせていただいたリンクをあげていきます。

実際に作ってた時にkobitoへメモしていたものをそのまま貼ってます。

iOSアプリ開発がどんなかんじで進むのかをつかむ。基礎。

ドットインストールのiPhoneアプリ開発入門

  • xcode5.0に対応してる
  • なんとなく動かし方がわかる
  • コードがなにを意味してるか全然わからなかった

Apple公式日本語ドキュメント

とりあえずこれだけ軽く読んだ。実際にコードを書いてないからピンと来なかった。Objective-Cによるプログラミング Programming with Objective-C

iOS 7 Best Practices; A Weather App Case Study: Part 1/2

StoryBoardを使わずに実際に手を動かして結構かっこいいアプリができる。コードの量もまあまああるのでObjective-Cに慣れるのにちょうどよかった。

  • NSURLSessionはネットワーク越しのやりとりを担うクラス..ほぅ。
  • tableViewCellの使い方や計算、作法がわかった。
  • Objective-Cの書き方がぼんやりわかってきた。
  • リクエストしてそのレスポンスのJSONをperseするサンプルが使えそう
  • coredataとかカメラ機能とか使いたい
  • storyboardとの連携が全くないのでStoryBoardの勉強は別途必要かも
  • Objective-Cの教科書的なのが読みたくなってくる。

②ここから先は実際に作りたいアプリに必要な機能のみかいつまんで学んだ

カメラアプリ開発入門

  • 以下のような機能を実装できた
  • 1.ボタン押す
  • 2.カメラロール起動
  • 3.画像選択
  • 4.フィルターをかける
  • 5.その画像をViewに表示
  • 6.Viewに表示と同時にカメラロールに保存

【DECOPIC風】画像にスタンプを挿入できる機能を実装する

  • 画像にスタンプをつけてカメラロールに保存する
  • 実装方法の説明が断片的なので初心者だと動かなくてハマる
  • 画像に画像をはりつける実装ができるのが良い

iOSのカメラ機能を使う方法まとめ【13日目】

  • カメラの起動
  • 画像の保存

[iOS 7] 自作アプリにFlickrとVimeo投稿機能を実装する

  • iOSデフォルトのUIActivityViewControllerを使うのでとても簡単にShare機能を実装できる

JSQFlatButton

  • フラットのかっこいい感じのボタンを実装できるサブモジュール
  • ライブラリを追加する方法がわからずハマった。Groupとしてコピーし、ヒモ付しないとライブラリをimportしても使えない

ナビゲーションバーのカスタマイズ

[iOS][Xcode]iOS7でステータスバーが被る問題への対応

  • iOS6/7への互換対応

iOSのスクリーンで2本指を使いUIViewの回転、拡大/縮小を同時に行う

boundsとframeの違い - frameは全体の位置、boundsは自分からの位置 - rotateさせるとframeのサイズではなくboundsのサイズが使用される

③リリースまでの手順とか。画像の準備。

Makeappicon

  • アイコンを全サイズ分作成してくれる

Xcode5でアイコンを設定する方法

  • イコン画像と起動時のスプラッシュ画像はxcodeから各デバイスごとに登録する
  • deploy targetに沿った画像をすべて用意しないとエラーがでる

リリースまでの手順

  • この通りでおけ。

その他

iOSアプリ開発に役立つTips100連発!

  • 本にもなっててお馴染みのあれ。あとでもっとちゃんと読む。

まとめ

iOSアプリは思ってるよりも簡単に作れるということが今回のアプリでの学びです。

食わず嫌いせずに飛び込んでみてよかったと思います。

LGTMcamについては、色々バグだらけですが、ソースは公開してるのでプルリクくだされば修正します。それも勉強になりそうなので。

今回は外部との通信をほぼ行なってないので、次回はweb通信をちゃんと利用したアプリを作りたいと思います。

また一つ、自己表現の幅が広がりそうなのでしばらく楽しんでみようかなー。





*最後に

plistへカメラを使用する旨を書かなかったことと、手を抜いてスクリーンショットを1枚しか用意しなかったことでリジェクトされたのは内緒です...

なんかあったらこちらまで→@razokulover