iOSアプリ開発 脱初心者に向けて

16,141 views

Published on

2014.3.27 スマホアプリ開発勉強会@Talknote

Published in: Technology
0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
16,141
On SlideShare
0
From Embeds
0
Number of Embeds
12,951
Actions
Shares
0
Downloads
23
Comments
0
Likes
18
Embeds 0
No embeds

No notes for slide

iOSアプリ開発 脱初心者に向けて

  1. 1. iOSアプリ開発 脱初心者に向けて Kosuke Ogawa (@koogawa) 2014.3.27 スマホアプリ開発勉強会@Talknote
  2. 2. •小川航佑 Kosuke Ogawa •@koogawa •趣味と仕事の両方でiOSアプリを開発
  3. 3. 作ったアプリ
  4. 4. まりも • スマホ内でまりもを育成する アプリ • やることは水を換えるだけ • 30万ダウンロード突破!
  5. 5. テレビでも紹介されました
  6. 6. 今回の対象者 • アプリの作成∼実機でのテストなど基本的なことは 理解している • もっと効率的に開発したい • アプリをリリースしてみたい • もっと多くの人に使ってもらいたい
  7. 7. アジェンダ 1. 開発Tips 2. リリースしてみよう 3. より多くの人に使ってもらうために 4. おまけ
  8. 8. 1.開発Tips
  9. 9. 実行中のメソッド名を表示する • NSLog( %s , __func__); • どのメソッドを通ってきたか把握できる • マクロにしておくと便利
 #define LOG_METHOD NSLog(@"%s", __func__) • LOG_METHOD; • アプリ名-Prefix.pch に書いておくと便利
  10. 10. NSLogを隠す • リリース時にNSLogは出すべきではない • リリース後もコンソールから見られてしまう • デバッグ時にのみ出力するマクロを作ろう • LOG(@ hogehoge );
  11. 11. // NSLogと同じように書ける LOG(@"debug log ); ! // メソッド名表示 LOG_METHOD;
  12. 12. NSStringFromXXX系を使う CGRect rect = CGRectMake(0, 0, 200, 100); NSLog(@"%@", NSStringFromCGRect(rect)); // {{0, 0}, {200, 100}} と出力される
  13. 13. 他にもいろいろ • NSStringFromCGPoint • NSStringFromCGSize • NSStringFromCGRect • NSStringFromCGAffineTransform • NSStringFromUIEdgeInsets • NSStringFromUIOffset
  14. 14. ViewControllerに 何でも書くのをやめる
  15. 15. よくあるパターン1 AAAViewController API BBBViewController CCCViewController 通信 通信 通信
  16. 16. よくあるパターン1 AAAViewController API BBBViewController CCCViewController 通信 通信 通信= =
  17. 17. 通信処理を分ける AAAViewController API BBBViewController CCCViewController 通信
  18. 18. • ソースコードの重複が無くなる • 再利用しやすい • メンテナンスしやすい
  19. 19. よくあるパターン2 ! TableViewController DataSource Delegate
  20. 20. DataSource/Delegateを分ける ! TableViewController DataSource Delegate
  21. 21. CollectionViewにも対応できる ! CollectionViewController DataSource Delegate
  22. 22. • 高い柔軟性が得られる • 再利用しやすい • ViewControllerを軽量化できる
  23. 23. 便利なライブラリ
  24. 24. Reachability • ネットワークの接続状況を確認できる • 現在の接続状況が3G、WiFi、もしくは圏外なのか • Apple公式のライブラリ
  25. 25. AFNetworking • もはや定番の通信ライブラリ • ファイルアップロードも簡単 • URLから画像を取得して直接UIImageViewを作成 することもできる
  26. 26. SVProgressHUD ローディング表示を数行で実装できる
  27. 27. 心がけること • ライセンスをよく読む • iOSのバージョンアップで動か なくなることも • 作者に感謝すること
  28. 28. 便利なサービス
  29. 29. クラッシュレポート • Crashlytics • Crittercism • Bugsense Crashlytics公式サイトより
  30. 30. • クラッシュするとメールで教えてくれる • iOSバージョン • 端末の種類(iPhone, iPad, iPod…) • クラッシュ発生箇所(行数までわかる) • 無料
  31. 31. テストアプリ配布 • TestFlight • DeployGate
  32. 32. プッシュ通知 • サーバサイドプログラムなしでプッシュ通知を送れる • 証明書(.p12)ファイルをアップロード • 専用のSDKが用意されている • 1ヶ月あたり1,000,000プッシュまで無料
  33. 33. 2.リリースしてみよう
  34. 34. リジェクトされないために • 落ちないよう努力する • ポルノコンテンツを表示しない • 機能的なアプリを作る
  35. 35. 落ちないよう努力する • 複数のiOSバージョンでテストする • 複数のデバイスでテストする(カメラ有無など) • クラッシュレポートを使う
  36. 36. ポルノコンテンツを表示しない • 外部コンテンツだとしても不可(バナー等) • レーティングを正しく設定する • 違反報告の仕組みを作る
  37. 37. 機能的なアプリを作る • シンプルすぎるアプリはリジェクトされる • Webをただ表示するだけのもダメ(それHTML5で もいいやんって言われる) • 役に立つアプリを作ろう
  38. 38. ダメなアプリの例
  39. 39. 改善後
  40. 40. 3.より多くの人に 使ってもらうために
  41. 41. 口コミをねらう • シェア機能を付けよう • ユーザが友達に紹介してくれ る • ハッシュタグをつけると検索 しやすい
  42. 42. アイコンは手を抜かない • アイコンが第一印象を決める • カッコ悪いとホーム画面に置 いてもらえない • 自分で作れないならクラウド ソーシングなどを使う (Lancersがおすすめ)
  43. 43. ブログで紹介してもらう • なんだかんだ言って一番効果がある(当社比) • ブログ(持続性)>テレビ(瞬発性)>雑誌 • エゴサーチを定期的にやる • 紹介していただいたら「ありがとう」を忘れずに • 効果を教えてあげると喜ばれる
  44. 44. こまめなアップデート • バグはすぐ直す • iOSアップデートにすばやく対応する • ユーザの要望に耳を傾ける(すべてを聞く必要はな い) • ブレないことが大事
  45. 45. 自分がヘビーユーザーに • リリースして終わりだとアプリが成長しない • 自分で使い込んでみることが大事 • 毎日使ってみると、改善すべき点が見えてくる
  46. 46. ASOはほどほどに… • タイトルにいろいろ詰め込まないこと • 最近はリジェクトされる例が増えてきています • どんなにASOを頑張っても検索上位に表示される のは一番使われているアプリなのです • 中身で勝負しよう!
  47. 47. 何のためにアプリを作るのか? • 勉強のため? • 有名になりたいから? • お金がほしいから? • たくさんの人に喜んでもらいたいから?
  48. 48. 4.おまけ
  49. 49. マネタイズ • 広告出すなら最初から出す • 広告は邪魔にならない場所に • 位置次第ではレビューが炎上します^^ • ターゲットをよく考える(国・年代性別など) • 有料アプリより無料アプリに広告載せるほうが かっ てます(当社比・アプリの性質にもよる)
  50. 50. ありがとう ございました

×