「【第12回】potatotips(iOS/Android開発Tips共有会)」 #potatotips に参加してきました
12月17日に「【第12回】potatotips(iOS/Android開発Tips共有会) - connpass」に参加してきました。場所は、pixiv!行ってみたかったので、間違えてfacebookにも通知してしまうぐらいでした...
感想
正直、初心者なワタシにはレベルの高い話ばかりでした。でも、ヒントに満ちていたように思います。ドキュメントをしっかり読み込むことなどの基本がやっぱり大切なんだと発表を見ていて感じました。
気になった発表
pixivアプリの画像の扱い(仮)(for Android)
Volley + OkHttp を利用している
- キャッシュ
- SPDY対応
- Volley は4プロセス?
原寸大つらい
- 8MBのファイル
- 縦長、横長
- ディズニーモバイルが7割ぐらいで落ちます
- 120MB でもStream
- 来月には、Anddroid 2.x 系きります
うごイラ
- 600px 150枚 zip ファイル
- メモリに全部のると大変
- FPS 30ぐらいになる
おまけ
- お昼にランチしているのできてね
iOS・Android 徹底比較! Subscription課金のハマりポイント
- pixivの課金ユーザーの50%がアプリ
キャンセル時の購読有効期間
- キャンセルは、次の購読をしないという意味
不正なレシート
- Android では不正なレシートを送れる
- 独自証明書が使えるため
- 送られたレシートは不正なものとして処理していく
- 3点ある
Apple
- 定期配信の審査
- 機能ではなくコンテンツが審査される
- Webサービスの有料コンテンツはダメ
レシートの更新
- アプリ側で更新
- サーバー側で更新
Android
- テスト環境が無い
- 実際に購入して試すしか無い
まとめ
iOS・Android 徹底比較!Subscription課金のハマりポイント // Speaker Deck
App Indexing のススメ(補足版)(for Android)
App Indexing
- Googleの検索結果から直接アプリを開く
- アプリ選択ダイアログがでない
First コンタクト
- 登録などは無し
- コンテンツの表示を遮っていはいけない
- 戻るボタンでは、Googleの検索結果に戻らないといけない
App Indexing API
まとめ
- コンテンツがない場合は、APIを実行しない
- 端末内検索を有効化
質問
- firefoxなどで動きますか?
- どうでしょう???
- 結果、動かないらしい
- https://twitter.com/i315/status/545168389233065985
App indexingのススメ(補足版)
スクリーンショットでビューをテストする(for iOS)
FBSnapshotVerifyView
- Pods
- FBSnapshotVerifyView
- FBSnapshotTestCase
- SnapShot の比較でテストする
- githubに書いてある
- https://github.com/facebook/ios-snapshot-test-case
self.recordMode = YES;
- 大量のスクリーンショットが撮れる
Travis ci でも動く
Nimble-Snapshot
- Swift でも動く
- UIAutomationといっしょに使うといいかも
- Travis ci でやろうとすると、githubにもファイルを用意する必要がある
Snapshot Testing // Speaker Deck
Building stable and flexible libraries(for Android)
- mixi
- マルチスレッド
- callback
- Make libraries STABLE
Building stable and flexible libraries // Speaker Deck
ReactKitの紹介
ReactKit
- https://github.com/ReactKit
- オブジェクトのステータス管理や、通知?
- Promise + Progress + Pause + Cancel + Retry
まとめ
- Qiita に書いてます
- http://qiita.com/inamiy
MultiDexApplicationの実装詳細について(for Android)
- たぶん、Qiita に書く
- class が 64kを超えると...
グローバル対応の罠と技(仮)(for iOS)
- メルカリ
グローバル対応
- USからスタート
別バイナリ
- 国 × 環境の数だけいる
- xcconfig
リージョンクラスの導入
- API、HTMLなどをビルド時に決められる
翻訳
- AGi18n
- Transfex
パッケージ
- JP版は日本語だけにしたい
- パッケージを直接操作
書式
- 日付
- まだいい
- 通貨の書式
- 桁区切りとか
- 佐々木望事件
- 自動修正の設定
iOS版グローバル対応の罠と技 // Speaker Deck
Jack & Jill
- Quipper で Android
APK ができるまで
- コンパイラー
- めんどくさい
Jack & Jill
- そこで Jack & Jill
なんで
ベンチマーク
- 遅くなる!なんで?
- 将来に期待
- Google に期待
Swift - Core Foundation
- ペパボ
- minne
Core Foundation
CMSampleBuffer
- CoreMedia.framework
- Core Foundation objects
- 何かしらのメディアデータがサンプリングされている
CMSampleBuffer.h を調べる
- Opaque Type?
- 構造体の定義はhファイルに書かない
Xcode 6.11 だと
- もっと便利になっている
まとめ
- Swift 以前の低レイヤーのこともきちっと
OS XでJenkinsを運用する
ビルドどうしていますか?
インストール
- Deamon化はlaunchctl
- homebrew で入れられる
Xcode やOSのアップデート
- プロジェクトごとにわける
- コマンド
- xcode-select
GUI とVNC
Yosemite
いいところ
- 履歴が残る
- 秘密鍵の管理がしやすい
まとめ
- 所々つまる
- でもいいよ!
Jenkins on-mac
AndroidStudio,Gradle バージョン互換性
Android Stuido
- 1.0.1がでた
- CIのテスト時に、CIのMatrixでビルド&テストできるかも
- Gradleビルドが遅い
- Android Studio 使います!
AppExtensionsのテストコードを書く
- trippiece
AppExtension
- いろいろ
AppExtension 用ターゲット
DEMO
まとめ
- Embedded Framework でテスト
- よく見ないところこそテストを用意
App extensionでテストコードを書く
Androidの本「Android実践プログラミング」と「甘味アンドロイドパーク」をつくったよ
告知
甘味アンドロイドパーク
- こってり
Android実践プログラミング
- 実践的
- ダメなコードとその対策
- 15個集めました
TypeScript in Definetely
Androd Studio セットアップ
- バージョンアップに追従する本です
- 無料で配布
入手方法
- C87
- 3日目
- 12/30
いかにして不具合発見時のフィードバックを素早く行うか
- Fablic
QA時
- 担当の席にいく
- チャットで送る
- 不具合は鮮度が大事
- もっと手軽にフィードバックしたい
エンジニアが欲しい情報
BugshotKit
- BugshotKit
- https://github.com/marcoarment/BugshotKit
- 登録したジェスチャー
- 画像などをメール送信
- 画像
- info.json
インストール
- CoCoaPodでいれる
- ApplicationDelegateに記載
メール、通知
まとめ
- フィードバック系のライブラリが増えてきている
AnnotationProcessing を使ってコンパイル時にソースを生成する
- グノシー
AnnotationProcessing といえばjake
Android Studio での開発
Annotation Processing を使ってソースを生成する // Speaker Deck
まだSwiftのメソッドで消耗してるの?
引数
キーワード引数
- 外部引数名を指定しない
- 第二匹数名はかって
外部引数名を指定
- objective-cではwithがつく
- withがなくなる前置詞がある
#をつける
_をつける
イニシャライザ
まとめ
- ふくざつ...
まだSwiftで消耗してるの? from 今城 善矩
http://www.slideshare.net/YoshinoriImajo/swift-42797767:tilte