Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

30代からのプライベートiOSデベロッパーのとしての軌跡

918 views

Published on

iOSDC Reject Conference days1での発表資料になります。これまでリリースしたアプリのことからObjective-CからSwiftへ移る時の学習法や取り組んでいる事などをまとめました。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

30代からのプライベートiOSデベロッパーのとしての軌跡

  1. 1. 30代からの プライベートiOSデベロッパーのとしての軌跡 iOSDC Reject Conference days1 2016/08/30 Fumiya Sakai
  2. 2. 自己紹介と簡単な経歴など ✦ 今までの仕事履歴(本業) 石川県金沢市生まれ 本業はサーバーサイドのプログラマ ※Rails&PHP使い 26歳〜31歳: Webプログラマ(PHP & Rubyがキャリア長い) 23歳〜25歳: Webデザイナー兼ディレクター チャンスがあればiOSアプリ開発も絶賛やってみたい! 趣味:シルバーアクセサリー集め・スイーツ作り・アプリ開発 女子向け・グルメ・エンタメ関連のお仕事が多い Qiita : http://qiita.com/fumiyasac@github Github : https://github.com/fumiyasac ✦ 酒井文也(さかい ふみや) 東京(大塚)住まいの31歳 こんな格好を普段からしているので 遊び人に見られますがエンジニアです。 文系卒に思われますが 実は数学科で理系卒です。 めっちゃお酒好きそうに見えますが ビール苦手でお酒も超弱いです。 今でもたまにUIまわりとか触りたく なることがあったりなかったり 今年の4月からフリーランスです。 (割とお堅い感じの会社にいます) 最近のはまっている食べ物は カボチャと担々麺と甘栗です。 最近はSwift以外ではRailsやLaravel・CakePHP・Node.jsなんかも
  3. 3. これまでに作ったもの(ネイティブアプリ) ① 簡易家計簿アプリ「Coffre」 ② ゲームアプリ「10秒虫食い算」 ・カレンダーを自作しています ・シンプルなお小遣い帳感覚で支出管理できます ・全問正解者ほとんどいません… ・不定期ですがコラムも書いています ・サーバーサイドはRuby on Railsを使用 http://www.coffre.me/ ・デザインにもこだわってみました(特にグラフ) ・実はちょっとバグがあります。 ・問題は今後追加予定(現在110問収録) 個人的にはなりますが、他にもアプリ・Webサービスなど開発中です(2016年も宜しくお願いします) ・サイト等は次回のアップデートで公開予定 http://blog.just1factory.net/services/284 ・若干の中毒性を含みます
  4. 4. ✦ 強大な短納期案件という敵をやっつけた後感じた不完全燃焼感 2014年のちょうどこの日ぐらい 本業はサーバーサイドエンジニア(元デザイナー)。でもどっちもやりたいという強い思い。 「電卓」と「家計簿」です。 勉強のキッカケ作りはスクールでも仕事でも独学でもどちらでも良いと思われ。でも楽しむ心は忘れないで ★見よう見まねの中から編み出した我流混じりの喧嘩スタイルコード ・自分はただ爆速で持てるスピードを最大限出しただけに過ぎない ・本当にこの数週間の経験を持って自分ひとりでアプリを作りきることができるのか? ★思い切って某スクールに 便利そうなTIPSや実装してみた記録は進んで共有&シェアするように(まあ先輩だし…的な気遣い?) ・年齢の壁的なもの / スケジュール感 / 講師とのコミュニケーション → 全く問題はなかったよ! ・自分のお金で行くのでピシッとなれる & 質問や相談をできる人がいる → ぜひ有効活用をしよう! 【ここで聞いたアプリ初学者が作りたいと思っても挫折するアプリの代表例】
  5. 5. ✦ デザイン〜申請まで全ての工程を一人で行うプラクティス Objective-Cで家計簿アプリを作る 多少実装がいけていなかったとしてもコメントを極力残しておくことでどこが抜けている部分かを明確に ★家計簿アプリ(Coffre)の開発に着手 ★この頃にSwiftがリリースされたので同時並行 勉強会などで自分が実装してきた成果をアウトプット ・Objective-CでのCoffreの開発の過程で生まれたものをSwiftへ実装し直して覚えていく ・一画面でできそうなサンプルをObjective-C / Swiftの二刀流で実施 Ruby on Rails サーバーサイド Photoshop デザイン Objective-C アプリ heroku / S3 インフラ 【特に重点的に取り組む】 GithubやSlideshare等に取り組みの成果をまとめておく +
  6. 6. ✦ アプリやサンプルを作る前にやっとくといいこと 個人アプリを作る上で頭を悩ませる部分 多少実装がいけていなかったとしてもコメントを極力残しておくことでどこが抜けている部分かを明確に ★設計(ペーパープロトタイピング) ★XCodeの操作やiTunesConnectの操作方法の復習 ・XCodeの最低限必要なショートカットキーや操作方法の流れは書籍等で確認をしておく ・デバッグ方法(printデバッグやコンソールでのエラーの見方・ブレークポイント)の確認 ・モックアップの段階で配色は決める ・サーバーサイドを絡める時はDB設計も 画面遷移図があるだけでも 考えがかなりまとまる ポイントとなる実装は 具体的な処理の概要を記載 ・作成するパーツのデザインもこの段階で デザインやアイデアをまとめるのに 時間をかけすぎるとヤル気に響く ・AppleDeveloperCenterでのAppIDやProvisioningProfileの作り方や運用方法 【アプリを作成するまでの手続きまわりは面倒だし忘れがち】
  7. 7. ✦ 機能をアレンジ or 取捨選択してSwift化してアウトプット Objective-Cでリリースしたアプリを生かす Swiftで書き直す際に実装ポイントや設計に関してはQiitaにまとめてGithubでサンプルソースを公開する ★Coffreで得た知見から生まれたTips ・カロリー記録サンプルアプリで見る実装ポイントまとめ http://qiita.com/fumiyasac@github/items/7463e0e1ea149ee4e9f7 ・Realmを使用したコメント機能付き記録アプリで見る実装ポイント(CoreDataと比較付き) http://qiita.com/fumiyasac@github/items/cbdf4d36cc14e213aaa7 ・CoreDataでのデータ保存 ・集計データのグラフ表示 このサンプル作成時点で 本格的にRealmへコンバート (ローカルのHTML + Chart.js活用)
  8. 8. ✦ 機能をアレンジ or 取捨選択してSwift化してアウトプット Objective-Cでリリースしたアプリを生かす ★10秒虫食い算で得た知見から生まれたTips ・時間制限付きクイズアプリをつくるサンプル紹介と実装ポイントのまとめ http://qiita.com/fumiyasac@github/items/7463e0e1ea149ee4e9f7 ・時間制限ゲームロジック ・タイマー処理 このサンプル作成時点で 本格的にRealmへコンバート ・計算結果表示のグラフ表示 Swiftで書き直す際に実装ポイントや設計に関してはQiitaにまとめてGithubでサンプルソースを公開する
  9. 9. ✦ 一番最初に作ったものは家計簿に入れるためのカレンダーサンプル カレンダーが大好物だ リファクタリングや実装に関しては、@akio0911さんにご協力を頂きました。本当にありがとうございます! ★サンプルはこちら ・Github: https://github.com/fumiyasac/handMadeCalendarAdvance ★詳細な解説はこちら 日本の祝祭日を計算してカレンダ−に表示するアプリサンプル ・Qiita: http://qiita.com/fumiyasac@github/items/33bfc07ad36dfffcdf8f ★(参考)以前に作成したカレンダーにも導入してみました Carthageまたは手動で計算ロジックファイルをコピーして導入できます ※導入に関しては今回のライブラリのREADMEを参照してみて下さい ・Github: https://github.com/fumiyasac/handMadeCalendarOfSwift 【あれから1年が経過し無事にSwift化 & 祝祭日ロジックを確立することができた!】
  10. 10. ✦ 美しいUIのアプリやサンプルを見つけたら自分で組んでみる UIまわりの実装も大好物だ UIはアプリの評価を決める大事な要素なのでしっかりと今後もTipsや実装例を作り続けていく予定です! ★ContainerViewやUIPageViewControllerの活用Tips作成 ★おしゃれなアプリポピュラーなUIや配色を参考に自力実装 ★ライブラリを部分的に活用したサンプル作成 JFYI: これまでに取り組んだUIまわりのTipについての記事 http://qiita.com/fumiyasac@github/items/2490990be4c011935368 【ライブラリや最近のアプリなどを見てUIの動きを車輪の再開発や活用をしてみる】 メディア系アプリでよくあるUIを実現した簡易サンプル http://qiita.com/fumiyasac@github/items/1244abc8e3286c47ef50 iPhoneアプリでUIを作るためのTipsとContainerView・UIPageView Controllerを使ったサンプル紹介 http://qiita.com/fumiyasac@github/items/96a588c4f7bfc901f729 Swiftで便利なライブラリやUIパーツに工夫を凝らしてUIを彩るサンプル例
  11. 11. ✦ 純粋なiOSアプリのエンジニアではないので知識が偏りがち 得意部分と苦手部分の把握 どうしても得意分野を生かす方向のサンプルやアプリを作りがちになる傾向が出るので気をつけています ★自分の強みと弱みになる部分はまとめるとこんな感じ ・後発組故にiOSアプリ固有の概念やデバイスの特有機能の部分に関しては若干Bad. ・本職のサーバーサイドやデータ永続化部分 / 経験のあるUI作成や画面デザインに関してはGood. 弱いところ 強いところ ・アプリのUI設計やパーツ作成 ・サーバーサイドとの連携 ・CoreDataやデータ永続化 ・GestureRecognizerやTouchEvent ・CameraやAVFoundation ・プッシュ通知やiOSのそもそも論 【はい、基礎的な部分は只今絶賛総復習中でございます、すみません><】
  12. 12. ✦ 今後もSwift力を上げてく!攻める! 今回のまとめ ご清聴ありがとうございました!またこのような機会があった際には是非ともよろしくお願い致します! ★どんなに簡単なものでも実践を意識したアウトプット 知見を貯めるにはアプリやライブラリのリリースと合わせてミニサンプルを作るプラクティスが最適 ★設計〜実装ポイントのエビデンスを残す 文章やコードのコメントにまとめることで同様な実装の際のスピードアップを図る工夫をする ★基礎理解力の担保 どうしても実務をしていないと自分の得意な分野に偏りがちな傾向が出てくるのでしっかりセーブ ★自分ルール 【良いアウトプットのために】 発表・登壇時はこの中のいずれか2つを 絶対に準備するルールを設けています!

×