HOME'Sアプリ Swift化

124 Views

December 06, 16

スライド概要

dots.勉強会資料

profile-image

LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

HOME’Sアプリ Swift化 株式会社ネクスト 池田 和洋

2.

いけだ かずひろ 池田 和洋 iOS開発G 開発: Web、API、R&D、iOS (PHP、JS、AWS、C++、OpenCV、C# Objective-C、Swift) サービス・プロダクト: HOME’S HOME’S アクセシビリティ対応版 GRID VRICK

3.

目次 ● HOME’Sアプリ ● Swift化 (特徴・共存・チーム) ● 実際どうなの? ● さいごに

4.

HOME’Sアプリ

5.

HOME’Sアプリ ● 総合不動産情報アプリ ● やることリスト、見学メモ ● 3デバイス対応 ● Rich Notification対応 ● Sticker対応

6.

HOME’Sアプリ ● 2009年12月24日 初リリース ● 2015年9月まで全てObjective-C ● Swift化の開始 - 新しいことやりたい ver.3 ver.1 ver.2 - 危機感 2009 2010 2011 2012 2013 2014 2015 2016 2017

7.

Swift化 ● ソースコード量大 ● 一括は非現実的 ● 段階的に移行 - 新機能はSwift - extensionを活用して一部Swift - リファクタリング

8.

特徴

9.

Swift ● WWDC2014で発表 ● WWDC2015でオープンソース化発表 ● Objective-Cより2.6倍高速 ● 現在最新はSwift3.0 (Apple調べ) (互換性ないよ!) ※HOME’SはSwift 2.3対応済み、Swift 3.0対応中

10.

Swift化のメリット ● タイプセーフ, 型推論 - 実行時に気づくエラーを減らせる ● Enum, Struct, Generics - 柔軟な設計ができる ● case, Trailing Closure Syntax - 可読性が上がる

11.

Swift化のデメリット ● アップデートが頻繁にある ● 影響が大きいアップデートがある Swift 3.0 破壊的…

12.

Swift化 ● 大きな改変は大変 ● 反面、様々なメリットもある

13.

共存

14.

Objective-Cとの相互連 携 Swift Objective-C ● Bridging-Header.h ● 必要なファイルをimport

15.

Objective-Cとの相互連 携 Swift Objective-C ● [プロダクト名]-Swift.h ● 実装ファイル(.m)上でimport

16.

Objective-Cとの相互連 携 Swift Objective-C ● @class [クラス名] ● ヘッダファイル(.h)上で宣言

17.

Objective-Cとの共存 Swift ● nullable, nonnull Objective-C

18.

Objective-Cとの共存 Swift Objective-C ● (Enum, Generics,) Struct, Tuple

19.

Objective-Cとの共存 ● 連携は簡単 ● 気をつけることはあるが、運用できる

20.

チーム

21.

意思統一 ● コーディング規約 ● SwiftLint 参考:https://github.com/github/swift-style-guide

22.

スキルアップ ● 社内勉強会

23.

クイズゲームを作る ● 全く慣れていないメンバーが慣れる ● 「家賃相場クイズ」を作る ● 元々あった機能をSwiftで書き直し

24.

簡単なHOME’Sを作る ● 実践編として実施 ● 実際のAPIを活用し、検索機能を作る ● 具体的なイメージに繋がった

25.

チーム ● コーディング規約 & Lintで設計の意識統一 ● 設計の意識統一も必要 ● スキルアップは実践!実践!実践!

26.

実際どうなの?

27.

所感 ● Swift化を進めてよかった! ● nil等に対する意識、設計への意識の変化 ● 新しいことを実践で取り入れられる ● スキルアップに繋がる ● チーム連携

28.

さいごに

29.

ネクストのエンジニア ● 自ら考え、自ら作る ● 様々な挑戦の機会がある ● フランクなコミュニケーション

30.

ネクストではエンジニアの募集を行っています。 興味お持ちの方は是非採用サイトよりエントリーください 。 【募集職種】 ・Webエンジニア ・iOSエンジニア ・Androidエンジニア ・セキュリティエンジニア ・QAエンジニア

31.

ご静聴ありがとうございました