BPStudy58 第1部 Web系エンジニアがiPhoneアプリ開発を1年続けてみて学んだこと
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

BPStudy58 第1部 Web系エンジニアがiPhoneアプリ開発を1年続けてみて学んだこと

  • 9,754 views
Uploaded on

ゆめみ提供のiPhoneアプリ Nailbook (http://nailbook.jp)につきまして開発全般を通じて得たiPhoneアプリ開発ノウハウ を紹介します。...

ゆめみ提供のiPhoneアプリ Nailbook (http://nailbook.jp)につきまして開発全般を通じて得たiPhoneアプリ開発ノウハウ を紹介します。

関連リンク
App Store - ネイルブック
http://itunes.apple.com/jp/app/nailbook/id432831907?mt=8

ゆめ技:ゆめみスタッフブログ
http://yumewaza.yumemi.co.jp/

ビープラウド著 Pythonプロフェッショナルプログラミング
http://www.amazon.co.jp/Python%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E3%83%93%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A6%E3%83%89/dp/4798032948

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
9,754
On Slideshare
9,133
From Embeds
621
Number of Embeds
10

Actions

Shares
Downloads
22
Comments
0
Likes
19

Embeds 621

http://slide.localhost 518
http://masatonave.blogspot.jp 62
https://twitter.com 11
http://masatonave.blogspot.com 9
http://s.deeeki.com 8
http://dev-connpass.owo3.net 7
http://webcache.googleusercontent.com 2
http://party4r.com 2
http://127.0.0.1 1
http://localhost 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Web系エンジニアがiPhoneアプリ開発を1年続けてみて学んだこと
  • 2. 自己紹介• 渡邉 将人 • Twitter @nave_m 2012/6/29 • Facebook facebook.com/masato.nave BPStudy#58• ゆめみ で 働いているプログラマ • スマートフォン アプリ、Web • C/C++, Objective-C , Python 2
  • 3. 本日の内容• iPhoneアプリ開発のノウハウ 2012/6/29• 継続開発 BPStudy#58• エンジニア視点• 今回の対象外 • 細かい設計・実装 • 企画・プロモーション 3
  • 4. 発表の流れ1. iPhoneアプリ Nailbookのご紹介 2012/6/292. 開発前にすべきこと BPStudy#583. リリース後にすること4. バージョンアップを続ける上で5. まとめ 4
  • 5. 2012/6/29 BPStudy#58ネイルの写真を共有するiPhoneアプリNAILBOOKのご紹介 5
  • 6. Nailbookとは• ネイル好きのためのiPhoneアプリ 2012/6/29 • みんなのネイル写真を見る BPStudy#58 • 自分のネイルを投稿する• App Store http://itunes.apple.com/jp/app/nailbook/id432831907 6• Webサイト http://nailbook.jp/
  • 7. ネイルの写真を見る・探す • 写真が豊富 2012/6/29 • 検索機能 • 色 BPStudy#58 • デザイン • シーン • ハンド/フット • サロン / セルフ 7
  • 8. 写真をお気に入り登録 • かわいい ボタン • フィードバック 2012/6/29 • Facebookのいいね! BPStudy#58 • ランキング • 過去 1週間 集計 • 実際にウケている 旬のネイルがわかる 8
  • 9. 開発に関して• 使用言語 • アプリ:Objective-C 2012/6/29 • サーバ:Python + Django BPStudy#58• プロジェクト開始時のPG経験 • iPhoneアプリ: Web中心(ネイティブはほぼ未経験) • Python :3か月くらいGAEさわったことがある程度 • Django : 未経験• 開発期間 • 初期開発 2011/2 – 2011/4 9 • 追加開発 2011/5 – 現在に至る (途中1ヶ月ほど別アプリも)
  • 10. 主なバージョンアップ• 2011/2 開発着手• 2011/5 Ver.1.0 2012/6/29• 2011/7 Ver.1.4 写真の表示方法を変更• 2011/8 Ver.2.0 メニューを大幅に変更 BPStudy#58• 2011/10 Ver.2.3 Push通知に対応• 2012/3 Ver.3.0 ユーザ検索• 2012/3 Ver.3.1 写真検索• 累計37回のアップデート (1ヶ月に3回のペース) 10
  • 11. 2012/6/29 BPStudy#58Appleのプラットフォームを理解する開発前にすべきこと 11
  • 12. アプリが世に出るまで1. 開発者登録、アプリ公開用登録をする 2012/6/292. アプリを開発する BPStudy#583. 申請してAppleによるレビューを受ける4. App Storeに公開 12
  • 13. Appleによるレビュー• レビューを通らないと公開できない • バージョンアップにも毎回レビューが要る 2012/6/29• 「ガイドライン」と「レビュー担当者」が絶対 BPStudy#58• レビュワーは米国にしかいないらしい 13
  • 14. 却下される条件を知る• App Store Review Guideline • 閲覧にiOS Developer Program登録が必要 2012/6/29 • 英語 BPStudy#58• レビューで却下される条件は必読• アプリ関係者全員で読んだほうがよい 14
  • 15. iOS開発環境を知るどんな開発でも言語とフレームの理解は重要• Objective-C 2012/6/29 • 独特 (書式、メモリ管理)• iOS SDK BPStudy#58 • パターンさえを覚えてしまえば生産性は高い • Referenceに従わないコードはRejectされます • 例 ) ファイル保存のディレクトリ • App Store Review Guideline - 2. Functionality を読む• その他 • 非同期通信、 タッチ処理、画面のコントローラなど イベント駆動なアプローチがたくさん 15
  • 16. iOS Developer Library を読むアプリ全体、概念的な設計• iOS Human Interface Guidelines 2012/6/29• iOS App Programming Guide BPStudy#58画面構成、 ある画面におけるイベント管理• View Controller Programming Guide for iOS• View Programming Guide for iOS 16
  • 17. サンプルをたくさん動かす• ドキュメントとサンプルを行ったり来たり 2012/6/29• 慣れてきたら3rd Partyライブラリを使ってみる BPStudy#58• 困ったらStackOverflow 17
  • 18. 2012/6/29 BPStudy#58計画外のことばかりリリース後にすること 18
  • 19. いざリリースしてみると計画外のことだらけ 2012/6/29• ライバルアプリの出現 BPStudy#58• 新しいiOSで動かない• AppStoreのユーザ評価が荒れる 19
  • 20. AppStoreのユーザ評価• 評価点数(☆1~☆5)がダウンロードに影響 • ☆1評価 をなんとかして回避したい 2012/6/29 • できれば ☆5をつけてほしい BPStudy#58 20
  • 21. エンジニアができること• 品質を高める 2012/6/29• バグをすぐに修正する BPStudy#58• よい評価を促す仕組みを作る 21
  • 22. 品質を高めるiOS開発ではメモリ管理に特に気をつける 2012/6/29• メモリの解放忘れ BPStudy#58 ゆめ技:Objective-CのPropertyの解放忘れを見つけるスクリプト By @mokemokechicken http://yumewaza.yumemi.co.jp/2012/01/objectivecproperty.html• Nailbookでは 画像関連のメモリ管理 • カメラ撮影、画像の加工、大量のダウンロード ゆめ技:iOSシミュレータでメモリ警告を定期的に発生させる By @mokemokechicken 22 http://yumewaza.yumemi.co.jp/2012/03/memorywarningsender_in_ios_simulatorios.html
  • 23. バグをすぐに修正する • 1週間ごとに機能追加Ver.を申請し、 バグ修正もそこに含めてしまう 2012/6/29 • レビューでRejectされたら指摘事項を修正して、 BPStudy#58 その間に作った機能もマージして最申請 → Git大活躍 • 機能追加は可能な限り小分けにする → チケット駆動開発ゆめ技:Git-Redmine: GitのコミットとRedmineを連携する。チケット駆動開発にも。By @coiledcoil 23http://yumewaza.yumemi.co.jp/2011/08/git-redmine-integration-using-rest-api-python.html
  • 24. 奥の手: Expedited Review• 通常1週間ぐらいかかるAppleのレビューを 即日で通してもらう 2012/6/29 • Appleのサイトから英語で申請 • 本当に困ったときだけ使う • 例 )外部インフラが障害で乗り換えが必要になった BPStudy#58 24
  • 25. よい評価を促す仕組みを作る• アプリのお得意様にレビューしてほしい 2012/6/29• ある回数起動したら、依頼のダイアログを出す BPStudy#58 25
  • 26. バージョンアップを続ける上で BPStudy#58 2012/6/29 26
  • 27. アプリバージョンが混在する• 古いVer.のアプリを使い続けるユーザがいる • アプリとWebAPIとの整合性をどうやって保つのか? 2012/6/29 BPStudy#58• 強制バージョンアップ• クライアントの混在を許す設計 27
  • 28. 強制バージョンアップ• アプリ起動時に最新バージョンを問い合わせる WebAPIを用意 2012/6/29• 現在のアプリよりも新しいものがあれば、 BPStudy#58 AppStoreへ移動させるダイアログ表示 28
  • 29. クライアントの混在を許す• APIのレスポンスボディ の拡張方法 • JSON へ 新しい要素の追加はOK 2012/6/29 • 既存の要素の削除・改名はNG • パース時にデフォルト値になってしまう BPStudy#58• レスポンスの仕様を大きく変える場合、API を分ける • URIにVer番号を入れる • GET /1/app/action 29
  • 30. まとめ• Appleのルールを理解し、適応する 2012/6/29• 細かく、継続的に改善する • 開発言語にPythonを使っているのなら BPStudy#58 書籍 「Pythonプロフェッショナルプログラミング」 はぜひ読んでおきたいさりげなく重要• 技術英語 ( Reading ) 30
  • 31. ありがとうございました BPStudy#58 2012/6/2931