はじめに
こんにちは。ウィルゲートで開発を行っている三島です。 私の所属するメディアチームでは「暮らしニスタ」や「Milly」などのメディアサイトの構築と運用を行っています。また、webサイトだけでなくwebViewではありますが、スマートフォンアプリの開発も行っています。
今回はメディアチームでアプリについて学ぶ時間として開催している「アプリもくもく会」について紹介していきます。
もくもく会を開いた背景
アプリ開発は2016年から行っていますが、ウィルゲートではこれまでwebサイト構築を主に行ってきたため、アプリ開発についての知見がありませんでした。 これまではwebViewのアプリであったため、ネイティブアプリに比べ開発難易度が低く、なんとか調べながら開発を行っていくことができていました。
アプリができてから2年ほど経ち、アプリを使ってくださるユーザーが増えてきたため、 更に使いやすいアプリにするために、アプリをネイティブ化することが決まりました。
ネイティブアプリはこれまで作成してきたwebViewのアプリよりも難易度が高く、知らないことが多いです。そのため、これまでのようにトライアンドエラーを繰り返すことは効率が悪いと感じていました。 アプリ開発を1から調べながら学ぶことは効率が悪いため、ウィルゲートでは社外のネイティブアプリ開発に知見を持っている方にアプリの技術顧問として入っていただけることが決まり、アプリ開発についておしえていただけることになりました。 技術顧問についての詳細は下記の記事を見てください。
ネイティブ化に向けて技術顧問の方に入っていただき、アプリ開発における疑問点は解消できていますが、今後webViewからネイティブへ移行することでこれまでよりもアプリの保守工数が増加することが見込まれています。 しかし、現在チーム内でアプリの開発を行っている人が私以外にいないため、必然的に対応できる人も1人です。今後アプリを開発保守していくためにも、チームとして技術の底上げが必要だと感じていました。 チームとして技術を底上げするためにアプリについて学ぶ時間を作る必要があると感じていました。アプリについて学ぶ時間として勉強会やもくもく会などがありますが、メディアチームではもくもく会を開催することにしました。
勉強会ではなくもくもく会を開催することにした理由としては以下の2点です。
- 勉強会の形式にもよりますが、もくもく会のほうが実際に自分でコードを書く時間が多く各自のレベルに合った勉強ができる
- 各自で勉強をしてもいいが、勉強するためには強い意志が必要になるので集まって勉強をしたほうが続きやすい
もくもく会でやっていること
もくもく会では一般的なもくもく会と同じように時間が空いた人が集まって個人でアプリについて学ぶ場にしています。 ただ漠然とアプリについて調べたり、コード書いたりするだけでは効率が悪いので、mixiさんのiOSTrainingやAppleのswiftのチュートリアルなど基礎的なことを学ぶ事ができる資料を見ながら勉強しています。
iOSTrainingはXcodeの使い方やSwiftの書き方など基礎的なところから学ぶことができるため、初心者の方におすすめできる資料だと思っています。
GitHub - mixi-inc/iOSTraining: Training course repository for iOS app developmentgithub.com
Appleのswiftのチュートリアルは英語で書かれているため読むことに時間がかかってしまいますが、簡単なCRUDのアプリを作ることができるため、楽しく学ぶ事ができるのでおすすめです。
もくもく会の感想
良かったこと
良かったこととしては、チュートリアルを進めていくことで基礎的な力はついたと感じています。また、これまで1人で勉強をしていたため疑問の解消に時間がかかっていましたが、チームで勉強を行うことで他の人に質問をすることができ、より効率よくアプリ開発について学ぶことができています。特にこれまで1人で調べ1人で解消していたため孤独を感じていましたが、雑談しながら勉強することで楽しく勉強ができ良かったと思います。 時間を作って参加してくれたチームメンバーには感謝しか無いです。
反省点
チュートリアルをこなすことで基礎は学ぶ事ができたと思いますが、実際のプロダクトコードでは応用が求められます。もくもく会でチュートリアルで学んだことを実際に使ってみることができなかったです。今後は実際に題材を決めアプリを作ってみるなど応用を学ぶ事ができるように工夫していきたいです。
まとめ
アプリもくもく会を始めて3ヶ月経ち、全体として基礎的な知識はついてきたと感じています。 今後こういった活動を続けていくことで、ウィルゲートの開発組織全体としてwebアプリだけでなくネイティブアプリを開発できるようになり、より多くの人にサービスを利用してもらえるようにしていきたいです。