potatotips #34 (iOS/Android開発Tips共有会)に「Android ブログまとめ枠」として参加させていただきましたので、その報告になります。
potatotips #34 概要
LTまとめ(発表順)
ブラウザアプリSmoozを作る中で会得したWKWebViewのTips
発表者 : sassy_man_yuichi
- 真っ白になる問題
- メモリ不足によるもの
- ページの有無をチェックして、なければリロード
- タッチダウンを取得したい
- WKWebViewのjsのデバッグ
- SafariのWebインスペクタから
DownloadManagerのイベントをRxJavaで処理したらいい感じだった
発表者 : Reyurnible
-
DownloadManageerの問題点
- コールバック処理がreceiver経由で使いにくい
- 連続でDLするときに使いにくい
- つくったもの
- RxDownloader
- Rxとインタフェースが揃う
個人的メモ
似たような所感をもったので(偉そうですみません)メモ
AndroidもiOSもRxなインターフェースでラッピングして利用するのがデファクトスタンダードになりつつあるのかしら? #potatotips
— 所 友太 (@tokorom) 2016年10月26日
5分でわかるSE-0116(id-as-any)
発表者 : takasek
- SE-0116(Swift EvolutionのProposalsのうちの1つ)
- Swift3.0よりObjcの
id
型がAnyObject
ではなくAny
として扱われるようになった - 「
AnyObject
型が廃止された」「Any
がオブジェクト型になった」ということではなく「Any
からAnyObject
へのブリッジ」が完備された
忌しきStackOverFlowをどうにかする
発表者 : kozmats
-
stack overflow
遭遇したことありませんか?(Q&Aサイトのほうではなくエラーとしての)- ビューのレイアウトが複雑(ネストが深い)だと起きやすい
- Android 4.xだと起きやすい
- 起きたときに直すのが面倒なもの
-
Stetho
- レイアウトの構造をいい感じに見れるツール
- FB製
- 他人のみるときなんかにもいいとのこと
個人的メモ
XcodeのView DebuggingみたいなことをAndroid開発でもやりたいと思っていたのですが、、、Stetho
知らなかったので試してみよう
try! Swift NYC / Brooklyn Swift Develpers
発表者 : jpmartha
(資料見当たらず)
- try! Swift NYC / Brooklyn Swift Develpers に参加してきた話
- try! Swift NYC の会場の写真など
- Brooklyn Swift Develpersでは
SPM
についての話をしてきた
BottomNavigationView
発表者 : nankiti
- BottomNavigationView
- iOSの
UITabBar
みたいなもの - Googleがずっと嫌っていたもの、ハンバーガメニュー使えと
- 今年になってから折れたとのこと
-
Support Library 25.0.0
から使えるように - 横スワイプみたいなことはできない(
ViewPager
は使えない) - アイテムの最大数は5個まで、それ以上設定するとException
- iOSの
個人的メモ
@ushisantoasobu 個人的な見解ですが、ガイドラインにも載ったので温度感としては「使っちゃって〜!」ってくらいかもしれません https://t.co/zkBVUDNWQR
— Shohei Kawano (@shaunkawano) 2016年10月26日
Useful Command Line Tools in Swift 3
発表者 : giginet
- コードレビューでPlaygroundをよく使う => いつの間にかたくさんのPlaygroundファイルが散らかってしまっているという課題
- つくったもの
- Toybox
- Playgroundを管理するCLIツール
- Swift製
- Commandantを使ってる
- 配布がつらい(他所のを真似るのが一番)
個人的メモ
レビュー時にPlaygroundを使うというのをやったことがなく、本人にもどんな感じで使っているのかお話直接いただいたのですが、、、まだまだ自分のレビュー力のなさを痛感した
休憩
Grenade - Type safe intent buidler
発表者 : kobakei
- 明示的intentを自動生成する
- つくったもの
- Grenade
- コンストラクタの引数で
foo, bar1
またはfoo, bar2
みたいなことがやりたかった - (サンプルソースみたほうがわかりやすいと思うので以下に書いておきます)
@Navigator
public class DetailActivity extends AppCompatActivity {
// Required params
@Extra
String foo;
@Extra
int bar;
// Optional params
@Extra @Optional
String hoge;
@Extra @Optional
boolean fuga;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
startActivity(new DetailActivityNavigator(foo, bar)
.hoge(hoge)
.fuga(fuga)
.flags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
.build(context);
Layered Architectureで各層の依存関係解決をSwinjectを用いて行う
発表者 : kgmyshin
- (時間の都合上スライドの「実装例」のところから)
- こういう感じでつくってみたら良かったという話
-
Layered Architecture
(ここをうまくまとめることができなかったので、スライド及びiOSのまとめブログでご確認ください。申し訳ございません ) - テストしやすいこと、シングルトンに依存しない
個人的メモ
- 「具体クラスを知らなくていい / データをRealmなのかネットーワークからとってくるのかは気にしなくていい」みたいな設計は会社でもよく聞く
- Swinject知らなかったので今度調べる
Redex - A bytecode optimizer for Android apps
発表者 : shaunkawano
-
Redex
- dexを最適化するツール
- fb製
-
ProGuard
との違いは?-
ProGuard
は.class
ファイルを最適化 -
ProGuard
は未使用変数は取り除いてくれる、Redex
はインラインのソースコードを取り除いてくれる -
Redex
はとくにruleを設定する必要がない
-
- Sample Output :
4.6MB
=>4.3MB
- あまり減っていないように見えるかもしれないが、途上国ではアプリサイズはセンシティブ
Apple Pay x PAY.JP の概要
発表者 : laiso
個人的メモ
- Apple Payの話嬉しい
- Qiitaに発表がまとめれているというのは嬉しい
TransactionTooLargeException
発表者 : KeithYokoma
(資料見当たらず)
-
TransactionTooLargeException
について- プロセス間通信で発生するもの
- メモリの量が多いときに発生するもの(1MBまで)
- 1つ1つの通信でではなく、1つのプロセスが扱う合計のメモリの量
- intentの起動もプロセス間通信が発生している
-
TransactionTooLargeException
が起こりうる例としては、intentにbitmapを渡していたもの
-
- 似たようなエラーとして
CursorWindowAllocationException
最後に
- 久しぶりに勉強会参加したけどやっぱ面白い
- 間違い等ありましたら、お手数なのですがご指摘いただけると助かります