HOME'Sアプリ Swift化

31
HOME’S アアア Swift ア 株株株株株株株株 株株 株株

Transcript of HOME'Sアプリ Swift化

Page 1: HOME'Sアプリ Swift化

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

Page 2: HOME'Sアプリ Swift化

池田 和洋いけだ かずひろ

iOS 開発 G開発 :

Web 、 API 、 R&D 、 iOS(PHP 、 JS 、 AWS 、 C++ 、 OpenCV 、 C#

Objective-C 、 Swift)

サービス・プロダクト :HOME’S

GRID VRICKHOME’S アクセシビリティ対応版

Page 3: HOME'Sアプリ Swift化

目次● HOME’S アプリ● Swift 化● 実際どうなの?

( 特徴・共存・チーム )

● さいごに

Page 4: HOME'Sアプリ Swift化

HOME’S アプリ

Page 5: HOME'Sアプリ Swift化

HOME’S アプリ● 総合不動産情報アプリ

● 3 デバイス対応● やることリスト、見学メモ

● Rich Notification 対応● Sticker 対応

Page 6: HOME'Sアプリ Swift化

HOME’S アプリ● 2009 年 12 月 24 日 初リリース● 2015 年 9 月まで全て Objective-C● Swift 化の開始

0 1 2 3 4 5 6 7 8 9 10 11

ver.1 ver.2ver.3

- 新しいことやりたい- 危機感

Page 7: HOME'Sアプリ Swift化

Swift 化● ソースコード量大● 一括は非現実的● 段階的に移行

- 新機能は Swift- extension を活用して一部 Swift- リファクタリング

Page 8: HOME'Sアプリ Swift化

特徴

Page 9: HOME'Sアプリ Swift化

Swift● WWDC2014 で発表● WWDC2015 でオープンソース化発表

● 現在最新は Swift3.0( 互換性ないよ! )

● Objective-C より 2.6 倍高速(Apple 調べ )

※HOME’S は Swift 2.3 対応済み、 Swift 3.0 対応中

Page 10: HOME'Sアプリ Swift化

Swift 化のメリット● タイプセーフ , 型推論● Enum, Struct, Generics

● case, Trailing Closure Syntax

- 実行時に気づくエラーを減らせる

- 柔軟な設計ができる

- 可読性が上がる

Page 11: HOME'Sアプリ Swift化

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

Swift 3.0 破壊的…

Page 12: HOME'Sアプリ Swift化

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

Page 13: HOME'Sアプリ Swift化

共存

Page 14: HOME'Sアプリ Swift化

Objective-C との相互連携Swift Objective-C

● Bridging-Header.h● 必要なファイルを import

Page 15: HOME'Sアプリ Swift化

Objective-C との相互連携Swift Objective-C

● [ プロダクト名 ]-Swift.h● 実装ファイル (.m) 上で import

Page 16: HOME'Sアプリ Swift化

Objective-C との相互連携Swift Objective-C

● @class [ クラス名 ]● ヘッダファイル (.h) 上で宣言

Page 17: HOME'Sアプリ Swift化

Objective-C との共存Swift Objective-C

● nullable, nonnull

Page 18: HOME'Sアプリ Swift化

Objective-C との共存Swift Objective-C

● (Enum, Generics,) Struct, Tuple

Page 19: HOME'Sアプリ Swift化

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

Page 20: HOME'Sアプリ Swift化

チーム

Page 21: HOME'Sアプリ Swift化

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

Page 22: HOME'Sアプリ Swift化

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

Page 23: HOME'Sアプリ Swift化

クイズゲームを作る● 全く慣れていないメンバーが慣れる● 「家賃相場クイズ」を作る

● 元々あった機能を Swift で書き直し

Page 24: HOME'Sアプリ Swift化

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

Page 25: HOME'Sアプリ Swift化

チーム● コーディング規約 & Lint で設計の意識統一● 設計の意識統一も必要

● スキルアップは実践!実践!実践!

Page 26: HOME'Sアプリ Swift化

実際どうなの?

Page 27: HOME'Sアプリ Swift化

所感● Swift 化を進めてよかった!

● 新しいことを実践で取り入れられる● nil 等に対する意識、設計への意識の変化

● チーム連携● スキルアップに繋がる

Page 28: HOME'Sアプリ Swift化

さいごに

Page 29: HOME'Sアプリ Swift化

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

Page 30: HOME'Sアプリ Swift化

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

Page 31: HOME'Sアプリ Swift化

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