読者です 読者をやめる 読者になる 読者になる

めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

「【第12回】potatotips(iOS/Android開発Tips共有会)」 #potatotips に参加してきました

12月17日に「【第12回】potatotips(iOS/Android開発Tips共有会) - connpass」に参加してきました。場所は、pixiv!行ってみたかったので、間違えてfacebookにも通知してしまうぐらいでした...

#potatotips (iOS/Android開発Tips共有会)第12回

感想

正直、初心者なワタシにはレベルの高い話ばかりでした。でも、ヒントに満ちていたように思います。ドキュメントをしっかり読み込むことなどの基本がやっぱり大切なんだと発表を見ていて感じました。

気になった発表

  • App Indexing のススメ
  • スクリーンショットでビューをテストする
  • Jenkins
  • AppExtensions
  • 不具合発生時のフィードバック
  • Swift の引数

pixivアプリの画像の扱い(仮)(for Android

Volley + OkHttp を利用している

  • キャッシュ
  • SPDY対応
  • Volley は4プロセス?

原寸大つらい

  • 8MBのファイル
  • 縦長、横長
  • ディズニーモバイルが7割ぐらいで落ちます
  • 120MB でもStream
  • 来月には、Anddroid 2.x 系きります

うごイラ

  • 600px 150枚 zip ファイル
  • メモリに全部のると大変
  • FPS 30ぐらいになる

おまけ

  • お昼にランチしているのできてね

iOSAndroid 徹底比較! 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を実行しない
  • 端末内検索を有効化

質問

App indexingのススメ(補足版)

スクリーンショットでビューをテストする(for iOS

FBSnapshotVerifyView

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

まとめ

MultiDexApplicationの実装詳細について(for Android

  • たぶん、Qiita に書く
  • class が 64kを超えると...

グローバル対応の罠と技(仮)(for iOS

  • メルカリ

グローバル対応

  • USからスタート

別バイナリ

  • 国 × 環境の数だけいる
  • xcconfig

リージョンクラスの導入

  • API、HTMLなどをビルド時に決められる

翻訳

  • AGi18n
  • Transfex

パッケージ

  • JP版は日本語だけにしたい
  • パッケージを直接操作

書式

  • 日付
  • まだいい
  • 通貨の書式
  • 桁区切りとか
  • 佐々木望事件
  • 自動修正の設定

iOS版グローバル対応の罠と技 // Speaker Deck

Jack & Jill

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

GUIVNC

Yosemite

  • Jenkins のslave jobはssh経由
  • MacsshdGUIを操作できない
  • JNLPを使う
  • Userコンテキストで

いいところ

  • 履歴が残る
  • 秘密鍵の管理がしやすい

まとめ

  • 所々つまる
  • でもいいよ!

Jenkins on-mac

AndroidStudio,Gradle バージョン互換性

  • Android Stuido
  • Android Gradle
  • 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

インストール

  • CoCoaPodでいれる
  • ApplicationDelegateに記載

メール、通知

  • メールタイトル
  • 任意の項目を追加
  • メールからgithubのissue登録まで出来る
  • private API を使っているので審査に出すとダメ

まとめ

  • フィードバック系のライブラリが増えてきている

AnnotationProcessing を使ってコンパイル時にソースを生成する

  • グノシー

AnnotationProcessing といえばjake

Android Studio での開発

Annotation Processing を使ってソースを生成する // Speaker Deck

まだSwiftメソッドで消耗してるの?

引数

キーワード引数

  • 外部引数名を指定しない
  • 第二匹数名はかって

外部引数名を指定

  • objective-cではwithがつく
  • withがなくなる前置詞がある

#をつける

_をつける

イニシャライザ

まとめ

  • ふくざつ...

http://www.slideshare.net/YoshinoriImajo/swift-42797767:tilte

全体まとめ