342 Views
December 06, 16
スライド概要
dots.勉強会資料
LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。
HOME’Sアプリ Swift化 株式会社ネクスト 池田 和洋
いけだ かずひろ 池田 和洋 iOS開発G 開発: Web、API、R&D、iOS (PHP、JS、AWS、C++、OpenCV、C# Objective-C、Swift) サービス・プロダクト: HOME’S HOME’S アクセシビリティ対応版 GRID VRICK
目次 ● HOME’Sアプリ ● Swift化 (特徴・共存・チーム) ● 実際どうなの? ● さいごに
HOME’Sアプリ
HOME’Sアプリ ● 総合不動産情報アプリ ● やることリスト、見学メモ ● 3デバイス対応 ● Rich Notification対応 ● Sticker対応
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
Swift化 ● ソースコード量大 ● 一括は非現実的 ● 段階的に移行 - 新機能はSwift - extensionを活用して一部Swift - リファクタリング
特徴
Swift ● WWDC2014で発表 ● WWDC2015でオープンソース化発表 ● Objective-Cより2.6倍高速 ● 現在最新はSwift3.0 (Apple調べ) (互換性ないよ!) ※HOME’SはSwift 2.3対応済み、Swift 3.0対応中
Swift化のメリット ● タイプセーフ, 型推論 - 実行時に気づくエラーを減らせる ● Enum, Struct, Generics - 柔軟な設計ができる ● case, Trailing Closure Syntax - 可読性が上がる
Swift化のデメリット ● アップデートが頻繁にある ● 影響が大きいアップデートがある Swift 3.0 破壊的…
Swift化 ● 大きな改変は大変 ● 反面、様々なメリットもある
共存
Objective-Cとの相互連 携 Swift Objective-C ● Bridging-Header.h ● 必要なファイルをimport
Objective-Cとの相互連 携 Swift Objective-C ● [プロダクト名]-Swift.h ● 実装ファイル(.m)上でimport
Objective-Cとの相互連 携 Swift Objective-C ● @class [クラス名] ● ヘッダファイル(.h)上で宣言
Objective-Cとの共存 Swift ● nullable, nonnull Objective-C
Objective-Cとの共存 Swift Objective-C ● (Enum, Generics,) Struct, Tuple
Objective-Cとの共存 ● 連携は簡単 ● 気をつけることはあるが、運用できる
チーム
意思統一 ● コーディング規約 ● SwiftLint 参考:https://github.com/github/swift-style-guide
スキルアップ ● 社内勉強会
クイズゲームを作る ● 全く慣れていないメンバーが慣れる ● 「家賃相場クイズ」を作る ● 元々あった機能をSwiftで書き直し
簡単なHOME’Sを作る ● 実践編として実施 ● 実際のAPIを活用し、検索機能を作る ● 具体的なイメージに繋がった
チーム ● コーディング規約 & Lintで設計の意識統一 ● 設計の意識統一も必要 ● スキルアップは実践!実践!実践!
実際どうなの?
所感 ● Swift化を進めてよかった! ● nil等に対する意識、設計への意識の変化 ● 新しいことを実践で取り入れられる ● スキルアップに繋がる ● チーム連携
さいごに
ネクストのエンジニア ● 自ら考え、自ら作る ● 様々な挑戦の機会がある ● フランクなコミュニケーション
ネクストではエンジニアの募集を行っています。 興味お持ちの方は是非採用サイトよりエントリーください 。 【募集職種】 ・Webエンジニア ・iOSエンジニア ・Androidエンジニア ・セキュリティエンジニア ・QAエンジニア
ご静聴ありがとうございました