eureka Meetup #03 -WWDCレポート iOSエンジニア-

第3回目の eureka meetupは、iOSのエンジニアリングがテーマです。 CTO金子がエウレカの『事業成長にフォーカスする開発組織』をご紹介し、iOSエンジニア3名がPairsにおけるiOSエンジニアリングをテーマにお話します。
0
前へ 1 ・・ 3 4 6 次へ
にわタコ @niwatako

結構すごいと思う。 どこまで使えるか気になったので調べた muukii/JAYSON を作ったりもしているし、みなさんもいろいろな方法で迷ったりしていると思う。 それらはdecodableで置き換えられるのか #eureka_meetup

2017-06-15 20:10:24
にわタコ @niwatako

Keyが違ったり、形が違う時はどうしたら良いのか。 Keyのリマップには対応している。CodingKeyプロトコルを使う。 階層を変える場合も init(from:)にdecoderが渡されるので、そこで自分で書く #eureka_meetup

2017-06-15 20:11:28
Date @d_date

デフォルトの実装で済むならCodableでいいんだけど、CodingKeyを書かなきゃいけないような状況だと、既存ライブラリから移行するメリットはないんだよね。ライブラリが剥がせるぐらいかな。 #eureka_meetup

2017-06-15 20:12:06
にわタコ @niwatako

Sample Codeがある PlaygroundでネストJSON階層のカスタムマッピングがある。 archives_and_serialization らへん #eureka_meetup

2017-06-15 20:12:18
にわタコ @niwatako

Decodeする時にthrowされるが、どこまで情報がと’れるのか。 DecodeingErrorがThrowされる。 DecodingErrorは4タイプ持っている。 #eureka_meetup

2017-06-15 20:14:01
にわタコ @niwatako

keyNotFound, typeMismatch(Bool宣言がJSONではStringだったり), valueNotFound(nullも), dataCorrupted #eureka_meetup

2017-06-15 20:14:04
にわタコ @niwatako

keuNotFoundのdebugDescriptionには何のKeyが見つからなかったのかとか出てくる。 codingPathは配列で、JSONの構造上どこまで進んだところで問題が起きたか辿れる。 #eureka_meetup

2017-06-15 20:15:25
Date @d_date

とはいえ、今後新規開発するときは、Codableを使うんだろうな #eureka_meetup

2017-06-15 20:15:38
にわタコ @niwatako

typeMismatche(let type, let context) debugDescription "String but found a number” context.codingPathで同様にどこまで行ったところか辿れる #eureka_meetup

2017-06-15 20:16:50
Hiasa Takahiro @takahia

.keyNotFoundって、(多分そんなとAPI使ってる会社はないと思うけど)APIをバージョン管理してないと、フィールド追加するとき古いアプリを切らないといけなくなるんだろうなぁ。個人的にはそれでいいけど。 #eureka_meetup

2017-06-15 20:17:45
にわタコ @niwatako

dataCorrupted 例えばURL文字列を直接URL型にマッピングできるが、空文字を渡すとだめ。 debugDescription Invalid URL String codingPathは渡されない? #eureka_meetup

2017-06-15 20:17:52
takasek @takasek

JSONDecoderで、URLがcorruptedである場合にエラー投げるソースはここですね github.com/apple/swift/bl… #eureka_meetup

2017-06-15 20:18:52
にわタコ @niwatako

シンプルなマッピングならコンパイラが自動生成してくれて素早く作れる。 カスタマイズもできる。 DecodingErrorがどこでエラーが起きたかわかりやすいので、マッピングの失敗でFabricにエラーを投げるなどして問題箇所を特定できる。 #eureka_meetup

2017-06-15 20:19:05
にわタコ @niwatako

話題を変えてPairs台湾版について コードのリニューアルをしている。 #eureka_meetup

2017-06-15 20:21:23
にわタコ @niwatako

台湾版では、特徴としては、 StoryBoard、Xibは0。コードでレイアウト。 Textureを使っている。 StackScrollView(設定画面みたいなのを楽に作る) #eureka_meetup

2017-06-15 20:21:34
にわタコ @niwatako

モジュールわけをしてリクエストレイヤーやサービスレイヤー、コンポーネント、Appで分けている。 MVVM、RxSwift、Carthage&CocoaPods #eureka_meetup

2017-06-15 20:21:37
にわタコ @niwatako

StackScrollView テーブルビューっぽいけどCellの中身がそれぞれ異なるとか、選択するとCellが膨らんで選択Pickerが出て来るとか、そういう動きが作れる。 #eureka_meetup

2017-06-15 20:23:06
にわタコ @niwatako

標準コンポーネントだとStackViewをScrollViewに乗せればよいが、遅くなる。それをCollectionViewを使うことで、イニシャライズを高速化している。 #eureka_meetup

2017-06-15 20:23:10
Hiasa Takahiro @takahia

Textureの前身のAsyncDisplayKitはFacebookが作ったんだっけ。 #eureka_meetup

2017-06-15 20:23:53
にわタコ @niwatako

TableViewCellだからあれはできない、みたいなことがなくなった。 #eureka_meetup

2017-06-15 20:25:20
にわタコ @niwatako

プロダクトに合わせたUIを自由に作れるのがメリット。 #eureka_meetup

2017-06-15 20:29:19
にわタコ @niwatako

PairsのiOSデプロイメント Pairsの日本版iOSアプリの課題とその改善のために使った技術について #eureka_meetup

2017-06-15 20:29:55
前へ 1 ・・ 3 4 6 次へ