フリーランスのiOSエンジニアになって早3ヵ月経ちました。個人になると自らアピールしていかないと世の中的には何もしてないことになってしまうので、この3ヶ月間(2月〜4月)にやったお仕事について書いておこうと思います。
(※まだ4月の途中なので、追記する可能性大です)
実店舗へのiBeacon導入
火鍋専門店『小肥羊』をチェーン展開している ウェブクルー 社よりお話をいただき、実店舗へ iBeacon を導入するサービス検討/検証 のお手伝いをさせていただきました。
iBeacon+実店舗の初仕事がリリースされました(&独立のご報告) - Over&Out その後
具体的には、本番アプリ開発の前段階として、下記のような機能を持つ実証実験用アプリ(非公開)を開発し、
- 店に近づくと通知が来て地図が出て道案内してくれる
- 入店するとメニュー等のUIが有効になる
- 入店後しばらくするとおすすめメニューを通知
- 退店するとありがとうございました通知&クーポン付与
このプロジェクトの関係者一同のiPhoneに入れ、お店に iBeacon モジュールを配置し、
→ みんなで実際に店に行ってサービスを体験(火鍋を食べてビールも飲む)
→ 実運用するアプリ/サービスの仕様策定・設計を行うための知見を得る
というお仕事でした。
関連記事:
PV撮影アプリ
Perfumeの演出サポート等々で有名な、Rhizomatiks(ライゾマティクス)とのお仕事。
詳細は書けないのですが、さすがライゾマさん、という技術アイデアで勉強になりました。
あと、一緒にライゾマオフィスで作業してたのですが、朝の4時に完成、そのまま始発で現場へ、という感じも ワークスタイルとしてすごく好み なのでぜひ今後ともお仕事をご一緒したいと思いました。
新しいウェアラブルデバイスの開発
僕が新卒で入った会社がNTTデータで、そこの研究開発部門で4年間、音声認識まわりの研究開発職についてたのですが、そのときの知見を活かせて、かつ 最近の一番の興味分野 である「iOSアプリ x 外部デバイス using BLE」という、完全なる俺得案件でした。
さらには、技術的な着眼点もおもしろく、そのプロダクトによって解決される問題も素敵で、座組も最高、という。
ただ諸事情あって、要素技術のフィージビリティがとれ、これからハードと合わせたプロトタイプ開発、というところで止まっています。どうにか再開して形にしたいところ。
とあるユーティリティ系アプリ
2月中盤 〜 4月序盤まで、ほぼこの案件にかかりっきりでした(他の案件は、土日とか、深夜とか)。事情により実績として公開はできないのですが、iOSエンジニアとしてものすごく学びの多い案件でした。
なによりも一番大きいのが、ひさびさにがっつりUIをカスタマイズする(UIKitの標準コンポーネントをあまり使えない)アプリだったこと。
ここ4年ほどほぼ専業でひたすらやってきたので、iOSアプリなら結構何でもうまくつくる自信はあったのですが、よく考えてみると2012年はほぼゲームアプリ(主に cocos2d 製)ばかりつくっていたし、2013年はほぼ書籍執筆とAppSociallySDK開発だけだったので、UIをがっつりつくりこむような「いかにもiOSアプリ」を「本格的に」つくる仕事は数年ぶりだなぁと。
UIまわりの実装力というか具現化力は、iOSアプリエンジニアとして期待されることが多いところなので、独立してすぐのこのタイミングでキャッチアップできて良かったです。
あと、この案件では iOS 7 の新機能を積極的に使用できたのも良かった。
具体的に、使用した/試した iOS 7 の API とその用途としては、
- カスタム画面遷移/インタラクティブ画面遷移
- 「縦に引っ張って移動」など。
- UIImage の renderType
- 素材は一つだけ用意して、これで各色使い回し。
self.imageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
- スクリーンキャプチャ
- 投稿、画面遷移アニメーション等。
[view drawViewHierarchyInRect:rect afterScreenUpdates:YES];
- UICollectionView + UIDynamics
- スクロール時に、引っ張る指の位置に応じて各セルがほんの少し抵抗を受けるようなインタラクションに使用(Message App の UICollectionView版)。
- UICollectionViewController の layout-to-layout アニメーション
- 試してはみたものの、色々合ってボツに。
などなど。
AnimatedTransitionGallery
これは仕事ではなく OSS ですが、上記ユーティリティアプリ案件でカスタム画面遷移を初めて使ったのがきっかけで、その「まとめアプリ」である『AnimatedTransitionGallery』をつくって公開しました。
【iOS7】53種類のカスタム画面遷移を試せるサンプルコードを公開しました - Over&Out その後
僕自身が実際にアプリ開発をする中で「こんなのあったらいいのに」と思いつくったものなので、日本だけでなく海外からも評判が良く、おかげさまで GitHub の Trending repositories で 1位 (today, this week両方)にもなりました。
WHILL
昨年、AppSocially メンバーとして 500 startups の batch 6 に参加 した際に同期だった WHILL。
次世代車椅子を開発しているスタートアップで、Mountain Viewに行って初めてその存在を知ったときは、「マジで??これ自分たちでつくってるの!?スゲーーーーー!!!!」と驚き、リスペクトしまくりなプロダクト&チームでした。
そんな WHILL と BLE で連携する iOS アプリ を開発するお仕事。
(初WHILL @町田にあるWHILL工房)
といってもBLE基盤がまだできてないので、本格始動は5月から。
3月、4月はまだ2日ほどご一緒しただけで、
- 投資家向けデモ用アプリ1本
- バックエンドをParseで構築
- WHILLと連携するアプリのプロトタイプ2本
- BLE接続なしの、UI/UXイメージを共有するためのプロトタイプアプリ
といった実装を行いました。
ちなみに先日書いた『BLE112開発キットの開発環境をMac上に構築する』という記事は、WHILL側の基盤完成に先立ち iOS 側のプロトタイピング を開始するためにやった作業のメモです。
AppSociallyサポート
昨年お世話になった シリコンバレーのスタートアップ、AppSocially。自分はその iOS SDK を開発したので、何か問い合わせ等があった場合に技術的な部分で回答する等のサポートを引き続き行っています。
gihyo.jp連載原稿執筆
連載『iOSアプリと連携させて使えるデバイスたち』の原稿執筆。
年初の目標 で書籍化を目指し数値目標を立てたものの、結局提出できたのは1回分のみ(現在 gihyo さんで html 作成中)。
途中まで書いて頓挫しているのがプラス2回分ほどあります。。
IRKitを使った何か
「こういうことは可能か」というアイデアの打診があり、フィージビリティ調査を行いました。
実際に現場に行く必要があったので、こういうもの をつくったり。
で、結果的には、対象機器の仕様として、そのアイデアそのままでの実現は無理ということがわかり、別の方法を探りましょう、という結論になりました。
関連記事:
- 複数のWiFi設定を保持しIRKitにセットできるユーティリティアプリをつくりました - Over&Out その後
- 家電を自由に操作するiOSアプリがつくれる『IRKit』 - Over&Out その後
所感
どうにかこうにか、食いっぱぐれることなく、しかも楽しいお仕事ばかりいただいて最初の3ヶ月を過ごすことができました。
「5年後、10年後を見据えましょう」と、ものの本にはよく書いてありますが、独立した当初は「この仕事が終わったあと、自分は何をやってるのだろうか。。」と、5年後・10年後どころか、半年先も見えてない状況に、不安を覚えたことがないわけでもなかったです。
が、とりあえずこの3ヶ月間だけでいうと、上述したように僕にとって楽しくて勉強になるお仕事ばかりでしたし、ありがたいことに、もうしばらく先も楽しすぎるお話をいろいろといただいています。
ビギナーズラックかもしれませんし、先のことはわかりませんが、この三ヵ月で思ったのは、
- 目の前のおもしろい仕事にがっちり食いつく
- → がんばっていい仕事をする
- → 得られたスキルや実績をブログ等でアピールする
- → よりおもしろい仕事のお話をいただく
というサイクルをしっかり回していく「わらしべ長者方式」がやっぱり自分にあったやり方であり、生命線だなと。
そんなわけで引き続きがんばってまいります!