『eureka Meetup #01 -Android DroidKaigi再演-』に参加してきました。
その時に興味のあった内容を備忘録的にメモしています。
ハッシュタグは、「#eureka-meetup」です。
- 事業成長にフォーカスする開発組織 by 金子 慎太郎
- トークアプリで絵文字を実装した話 by 二川 隆浩
- Error Handling in RxJava by 海藤 優弥
事業成長にフォーカスする開発組織 by 金子 慎太郎
まずは会社的な歴史と概要とCTOの概要。
- PairsとCupplesを開発しているが、特にPairsに注力している
- 前CTO元CEOから継いで、CTOになって半年。
- 自社サービスする、VC入れないを方針に広告事業でキャッシュをためて、受託開発をしてナレッジをためて、そしてPairsをリリース。3年後に完全に受託開発から撤退した。
- 2016年に会員数500万人
開発組織はどうやっていくのかというお話。
- 事業成長とブレンドイメージの向上を技術を通して支援・加速させるのがエンジニア戦略
- プロダクトを早く届けることに注力している。早く注力するために技術負債の低減を進めてスピード感を維持している
- 古いOSを使用しているユーザーにも配慮したアプリ開発をしている
- UI/UX大切。マネタイズがトガりすぎると結局金儲けアプリかと思われる。不正ユーザー(業者)をいかに取り除くか。
Androidアプリ:トークアプリで絵文字を実装した話 by 二川 隆浩
@futabooo
サーバーサイドはPHPからGolangにフルリニュアルしました。
フロントはTypeScriptとAngularJS。
Androidは、Kotlin・DataBinding・ButterKnife・Picasso・RxKotlin・Retrofit2・OkHttp3を使っています。
アプリ独自絵文字を最初は用意してなかったが、「自分が送った通りの絵文字が表示されない」という問い合わせを受けた。
しっかりとコミュニケーションできるようにアプリ独自絵文字を追加することを決意。
どうやるのかは他社アプリの独自絵文字を研究しました。
他社のアプリで実装されていた機能には次のようなものがあった。
- 絵文字を表示できる
- 絵文字のコピー&ペーストができる
- アプリ外にペーストすると代替テキストで表示される
- 絵文字1つだけの時はスタンプになる
String message = "こんにちは{{sticon(1,10)}}今日はいい天気ですね{{sticon(2,20)}}"
「{{sticon(1,10)}}」というような記法で独自アイコンを表示する。
裏の実装は、正規表現で頑張る感じ。Stringの拡張は、SpannableStringで実施。
コピーアンドペーストは、
コピーすると、アプリの方では「こんにちは{{sticon(1,10)}}」を保持して、クリップボードでは代替文字列「こんにちは(sunny)」をコピーする。
ペーストは、クリップボードの文字列とアプリの文字列を比較して対応する。
実装してみたら、大量の絵文字を表示するとスクロールがカクついたのでキャッシュで対応することにした。
最初はLruCacheを使って解決。
絵文字のコピペをすると文字れが切れる問題が発生した。
絵文字をコピーすると「{」しかコピーされなかったので、「{{sticon(1,10)}}」までコピーするように実装した。
Error Handling in RxJava by 海藤 優弥
RxJava(Reactive Extension for Java)のエラーハンドリングはCatchとRetryの2種類。
Retrofitで共通処理を仕込むのにコピペを減らすためにCallAdapterインターフェイスを継承して、
RxJavaCallAdapterWrapperを実装してaddCallAdapterFactoryで呼び出して対応。