![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
【 大阪オフィス開設1周年勉強会 】第3回 Swiftのアツさを語る! 〜AKIBA.swift in Osaka〜 2017/4/28 #cm_osaka
-
kongmingtrap
- 1828
- 4
- 0
- 4
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
身の上話です。 この会社に入る前は3年ほどObjective-Cで開発していました。クラスメソッドに入る前はSwift未経験。できれば一からSwiftプロジェクトに携わりたかった。 でも当時はSwift1。安定していなかった。対応OSの問題でObj-Cが多い #cm_osaka pic.twitter.com/9mC1g4tuKN
2017-04-28 20:06:24![](https://pbs.twimg.com/media/C-fr4OSUIAEy-vq.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
そしたらこんな広告が、察されたんか出るようになってきて、クラスメソッドに転職しました…!! #cm_osaka pic.twitter.com/9lfarDjQFp
2017-04-28 20:07:06![](https://pbs.twimg.com/media/C-fsJwmUAAAc_mw.jpg:medium)
![](https://pbs.twimg.com/media/C-fsJwmUQAEkDZf.jpg:medium)
![](https://pbs.twimg.com/media/C-fsQ3jUIAAXESx.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
社長が書いたSwiftの記事がバズって、エンジニアがたくさん記事を書いていると出版の打診も舞い込むように。 #cm_osaka pic.twitter.com/9FmQKtgI5I
2017-04-28 20:07:47![](https://pbs.twimg.com/media/C-fscPsUIAAM-Uk.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
しかし入社当時、Swiftプロジェクトは1つ。 やりたいと言い続けて、仙人でそのプロジェクトを担当できることに。そしていくつかの機能修正を担当。 前任者は、バックエンド担当になっていた。Scala・Play。Swiftをやっている人はそのうちScalaに行く? #cm_osaka pic.twitter.com/IA0Vw39rex
2017-04-28 20:08:56![](https://pbs.twimg.com/media/C-fsf4kVwAEmreW.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
ここから、プロジェクトとの戦いの始まり! アジェンダです。3番めはスライドが長くなりすぎたので削りました。 #cm_osaka pic.twitter.com/ChtrGEF0vt
2017-04-28 20:09:46![](https://pbs.twimg.com/media/C-fsvIZUAAICISP.jpg:medium)
![](https://pbs.twimg.com/media/C-fszwdUAAE8EOd.jpg:medium)
![](https://pbs.twimg.com/media/C-fs1jfV0AAqN8n.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
アーキテクチャとの接触 たったひとつのプロジェクトだが、先程の話であったVIPERを採用していました。 なかなか先進的だったのではないかと思います。 前任者が発表しています。よかったらご覧ください。 #cm_osaka pic.twitter.com/5KNUostlsB
2017-04-28 20:10:50![](https://pbs.twimg.com/media/C-fs8EkVYAA3Wgb.jpg:medium)
![](https://pbs.twimg.com/media/C-ftD2rUQAEyVIH.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
納期優先がおおい現場で、ViewControllerに機能が集中し、とにかく早く開発することが許容されがちな環境ながら、設計が徹底していたのが新鮮に感じた。 #cm_osaka pic.twitter.com/SdSYTvafYo
2017-04-28 20:11:50![](https://pbs.twimg.com/media/C-ftKd7VYAIQuVJ.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
しかし一方で、CocoaPodsに対応していないライブラリはSubmodule経由でインポートしたり、設計アーキテクチャに寄ってファイルが多く、修正箇所の特定になれるまで時間がかかったりする。 使われていたライブラリの中に見慣れないライブラリが #cm_osaka pic.twitter.com/M4eTmFZKnr
2017-04-28 20:13:01![](https://pbs.twimg.com/media/C-ftY5SUAAAtyYw.jpg:medium)
![](https://pbs.twimg.com/media/C-ftisLVwAAFNvY.jpg:medium)
![](https://pbs.twimg.com/media/C-ftokcUIAAKkKk.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
尊敬ほんとにほんとほんとーに大事!!!【登壇資料】エンジニアのチーム開発入門 – 心技体を磨いて自身とチームをより良くしよう #cm_osaka|クラスメソッドブログ dev.classmethod.jp/server-side/be…
2017-04-28 20:14:32![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
前任者が入れた非同期処理ライブラリだった。 前提として、Future/Promiseという考え方がある。Swiftにはこの機構はないが、それを入れている。 APIを直列で処理したい時、前の結果を使って次の処理をする、というのがやりたかったようだ。 #cm_osaka pic.twitter.com/16dzxDaLfz
2017-04-28 20:14:36![](https://pbs.twimg.com/media/C-ftqfRUwAIzQlj.jpg:medium)
![](https://pbs.twimg.com/media/C-ftt2WVwAAddal.jpg:medium)
![](https://pbs.twimg.com/media/C-ft5eqU0AApGyu.jpg:medium)
![](https://pbs.twimg.com/media/C-ft8qZV0AEqFTX.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
なぜ標準の機能を使わないかと聞いたら、前任者いわく、美しいということだった。 #cm_osaka pic.twitter.com/rUBU7cndtH
2017-04-28 20:15:04![](https://pbs.twimg.com/media/C-fuCg5U0AEsh4B.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
“たったひとつの願いを叶えるために生まれたとってもシンプルなメソッドです” 口説きにかかっていますね #cm_osaka pic.twitter.com/9zJn6fWj56
2017-04-28 20:15:42![](https://pbs.twimg.com/media/C-fuLTWUwAAUtPp.jpg:medium)
![](https://pbs.twimg.com/media/C-fuLTVUAAUYGAq.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
「なぜRxSwiftを使わないのか」 「美しいから」 #cm_osaka pic.twitter.com/jSdDYiEmUa
2017-04-28 20:16:10![](https://pbs.twimg.com/media/C-fuUnwUMAIun4C.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
・利用するライブラリはチームメンバーとレビューすることはヒス。 マッシブViewControllerにならないよう、アーキテクチャの導入は極力行う ・どのアーキテクチャを導入するかは、チームと納期と相談 #cm_osaka pic.twitter.com/Iz4a4yT8aL
2017-04-28 20:17:02![](https://pbs.twimg.com/media/C-fuYy3VYAAAvGW.jpg:medium)
![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
〜Swiftとのたたかい〜 swiftを2.1にしよう Apple様がマイグレーションツールを導入してくださった。 使い方は簡単。 かと思ったら、、、、これを手動で変える必要が #cm_osaka #cm_osaka pic.twitter.com/g3lC9I4Bc1
2017-04-28 20:18:29![](https://pbs.twimg.com/media/C-fuqfKUAAA2QQ5.jpg:medium)
![](https://pbs.twimg.com/media/C-fuzvrVoAEFIYD.jpg:medium)
![](https://pbs.twimg.com/media/C-fu2GcUAAAMAPu.jpg:medium)