You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Squareがメモリリークを検出するライブラリ square/leakcanary を公開したので、さっそく使ってみたらすごく便利だった話です。 A small leak will sink a great ship Piwaiが書いたLeakCanaryの記事がこちらです。 LeakCanary: Detect all memory leaks! 要約すると、 Squareではビットマップキャッシュに顧客の署名を書いていたが、端末の画面のサイズ分のメモリを確保するので、署名をするときにクラッシュすることがあり、それがOOMの大半を占めていた。 Bitmap.Configを変更したり、OOMをキャッチしてGCを走らせたりしたが、問題の解決には至らなかった。 我々は間違ったアプローチを取っていたことに気が付いた。ビットマップの大きさではなくメモリリークが根本的な原因だったのだ。 通常であれば
買物情報事業部の八木(@sys1yagi)です。 Android界隈でRxJavaが話題になっていますね。クックパッドアプリ(以後、「本体」と表現します)でも先日ついにRxJavaの導入を果たしました。本エントリではRxJavaをチームに導入する為に行ったいくつかの取り組みを紹介します。 目次 RxJava導入の失敗 どのような課題を解決するのか 導入の為に機能を分解し、学習コストを考える ブログを書く 低コスト、低リスクに導入する 勉強会を開く RxJava導入の失敗 2014年11月にRxJavaの1.0.0がリリースされました。遂に実用段階かという事で個人的にあれこれ触り、本体に導入する機会を伺っていました。ある日、bug fixの為にRxJavaを使うと簡潔になるのではないかと思い気軽にPull Request(以後、PRとします)を送った所、「このタイミングで急に導入する意図はな
Android開発していると、なんかMVCうまくいかないなぁとモヤモヤしてきました。そろそろ他のアーキテクチャを模索してみた方がいいんじゃないかと思い始めまして、ある程度考えがまとまったので自分なりの指針を残しておこうと思います。 そもそもアーキテクチャ必要なのか 世の中には色々なアーキテクチャが存在するんですが、なんか概念を読んでもスッと理解できることが少ないんですよね。これはなぜかと言うと アーキテクチャが解決しようとしている問題を理解できないからです。 極端に言うと、HelloWorldを表示するアプリにMVCを導入する必要があるの?って言うと答えはNoですよね。じゃあ猫の名前をリストで表示するアプリだったらどうかと言われると、これもまだ必要ないかもしれません。 つまり、アーキテクチャを適用しなくても問題がないほど小さなアプリにおいては、ただ冗長になるだけなので別にいらないわけです。
追記(2015/06/30)=================== Ubuntu15.04にAndroidStudio1.2.2を入れてみた ================================= 参考URL http://typea.info/tips/wiki.cgi?page=Ubuntu+%A5%E9%A5%F3%A5%C1%A5%E3%A1%BC%A4%CB%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%F2%C5%D0%CF%BF%A4%B9%A4%EB desktopファイルの作成 [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Name=Android Studio Icon=(Android Studioの絶対パス)/bin/andr
12/10に、ビジネス用途向けのチャットサービス「ChatWork」のAndroidアプリが大幅リニューアルされました。 チャットワーク社といえば、国内有数のTitanium Mobileをガッツリ触っている会社としても有名ですが、今回のリニューアルではAndroid SDK + Javaによるネイティブ化を断行したようです。(ツール選びに関する感想は最後に書きました) というわけで、Facebookアプリのときに続きまして、OSSライブラリのライセンス一覧を眺めていたら面白かったので、各ライブラリに感想を入れていきたいと思います。 ActiveAndroid https://github.com/pardom/ActiveAndroid (★1856) maven: 無し(jar配布 or sonatypeからSNAPSHOTを落とす) クックパッドAndroidアプリにおける最近のDB
DBFlow is fast, efficient, and feature-rich Kotlin database library built on SQLite for Android. DBFlow utilizes annotation processing to generate SQLite boilerplate for you and provides a powerful SQLite query language that makes using SQLite a joy. DBFlow is built from a collection of some of the best features of many database libraries. Don't let an ORM or library get in your way, let the code
对不起,您请求的页面不存在、或已被删除、或暂时不可用 请点击以下链接继续浏览网页 》查看产品展示 》返回网站首页 manbetx·万博(中国)有限公司
4. RxJavaの使いどころ • MVVMのつなぎとして使っています • FragmentからViewの状態変更を監視してコール バック実行 • ViewModelからAPIリクエストの結果を Fragmentに返す • ViewModelの状態をFragmentに反映させる ! • それぞれのインターフェースをObservableで統一 6. API Client • APIを叩いた結果をObservableで返す protected Observable<String> request(final int method, final String path) { return Observable.create(new RequestSubscriber(method, path)) .subscribeOn(Schedulers.newThread()) .observeOn(An
これらの一連の実装をどうするか考えていた。 前提 REST APIを使っている APIはデータモデル+メタデータを返す モデルはメモリキャッシュ、ファイルキャッシュにも対応する モデルとレスポンスの形式 メタデータの中にはページ情報など、サーバ/クライアントでデータをやりとりするのに必要なデータが入っている。 メタデータはモデルの外に持たせたいので、モデル層をResponseクラスでラップした。ここにページネーションのしくみを持たせることにする。 public class Response<T> { private T result; private Extra extra; private Observable<Response<T>> next; public T getResult() { return result; } public Extra getExtra() { retu
RxJavaのモチベーション HTTPクライアントは今ならOkHttp一択なのですが、APIクライアントには非同期に通信をおこなってほしいものですが、非同期処理をおこなうAndroidフレームワークのAsyncTaskやAsyncTaskLoaderは正直使いやすいとは言えません。Volleyは設計は綺麗で拡張もしやすかったのですが、Googleとしての立ち位置がよく分からなかったので OkHttp + 非同期処理を担う何か を探していました。 それでPromiseライクなBoltsと迷ったのですが、個人的な好みでRxJavaを採用してみました。 APIクライアントの設計 以前書いたもの の参考実装としてライブラリを書いてみました。 Octodroid リソースへのアクセスの仕方は以下のようになっています。 // GET /users/rejasupotaro GitHub.client(
このところ、複数の人からリアクティブプログラミング(RP)ってつまり何なんですかと聞かれることがあった。そのたびに非同期データストリームが…みたいな説明をしていたのだが、たいてい双方納得した感じにはならなくて、まあ難しいっすね…という感じで終わってしまっていた。 iOSとAndroidでの用途 自分は理論より実践からしか考えられないタイプなので、もっと現場寄りの説明ができないか常々考えていた。そこで自分がiOSとAndroidアプリを実装する際に使っているReactiveCocoaとRxJavaの用途を考えてみたところ Promise(の高機能版) 複数のAPIコールを連鎖させたい場合にコールバックヘルを避けたい データバインディング(の高機能版) Modelの変更とViewの変更を同期したい の2つがメインだった。 この2つはRPライブラリを入れなくても実装できる。JavaScriptな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く