Information sharing and Experience consistency at Cookpad mobile application

Information sharing and Experience consistency at Cookpad mobile application
非root端末のSQLiteDatabaseを覗きたい Androidアプリの開発で非root端末のSQLiteDatabaseは覗けない。 厳密には覗けないわけではなく、該当するアプリからは アクセスできるのだけど、これでは勝手が悪い。 開発中はSQLを直接叩きたかった。 だから無理矢理に覗く方法を作りました。 どうやって? アプリ側に1クラスで完結する小さなプログラムを埋め込み、 そこ経由でアクセスできるようにした。 要はバックドアのようなもの。 もちろん開発専用なので間違ってもリリースビルドには入れては行けない。 サンプルプログラム 説明にに使用したアプリケーションはこちらになります。 このアプリケーションのbuild.gradleとMyApplication.javaが該当します。 FastCheckList 使い方 使い方は次の3ステップです。 小さなプログラムを埋め込む App
こんにちは。菊地です。 最近、Androidアプリのメモリリークの調査について行う機会があったのですが、 AndroidStudioでメモリリークの調査ってどうやるの? という話が出たので、簡単にですが AndroidStudio でメモリリークの調査をする方法について記事にします。(具体的に解析結果からメモリリーク絞り込むといったことは今回は説明しません) メモリ解析ツール これは、EclipseでAndroid開発をしていた人には、馴染み深い(?) MAT(Memory Analyzer Tool) を使います。 ただし、EclipseではPluginとして存在していますが、AndroidStudioには存在していないようです。(2014/09/30調べ) ですが、Memory Analyzer には Stand-alone が存在しているため、そちらを使います。 ダウンロードはこちら
業務でソースコードレビューを行う機会が増えたので、複数回指摘した項目や気になった実装などをまとめてみました。 こういう観点をできる人と共有できるといいなあ…。 2014/09/29 23:00 一部修正しました。 業務上ソースコードレビューの名目で仕様・デザインまで見ることになっていたためこれらを先頭に書いていましたが、わかりづらかったため最後にまとめました。 Fragment関連 FragmentとActivityの密結合 Fragmentが特定のActivityから呼ばれることを想定して書かれている場合、そのFragmentとActivityは密結合である場合が多いです。 具体的には、以下の様な実装です。 ActivityのViewを参照する Activityのメソッドを直接呼び出す なぜダメか Fragmentの利点のひとつは優れた再利用性にあります。 Fragmentが特定のAct
声に出して読みたいObjective-Cのライブラリ8種(2014.7) に触発されて書いてみます。 前回はこちら android-promise Android フレームワークにおける Promise の実装です。Bolts は厳密には Promise ではなく(どこでそのスライドを見たのか忘れてしまった…)、継続 をベースにしているライブラリで、なにやら最近はちょっと違うものも含まれるようになってきましたが、こちらは純正の Promise の実装です。もう一つ、jdeffered もありますが、jdeffered についてはこちらを御覧ください。 Android でよくある、非同期処理とライフサイクルオブジェクトの関係で起こる悩ましいバグにうまく対応するため、Promise を生成するときにライフサイクルオブジェクトを登録するのが特徴です。これによって、ライフサイクルオブジェクトが死を
こんにちは、レシピ投稿推進室の小室(id:hogelog)です。 今回は私が実装したAndroid向けグラフ描画ライブラリline-chart-viewの紹介、ではなくついカッとなってOSSとしてこのライブラリを作りクックパッド (Androidアプリ)に組み込んだ話について書きます。 line-chart-view 最低限の紹介をするとline-chart-viewというのは List<LineChartView.Point> points = new ArrayList<>(); points.add(new LineChartView.Point(date("2014/07/01"), 100)); points.add(new LineChartView.Point(date("2014/07/02"), 200)); points.add(new LineChartView.Po
モバイルファースト室の @rejasupotaro です。 Androidフレームワークには端末内にSQLiteでデータを保存するしくみがありますが、みなさんはどのようにしてますか? クックパッドのAndroidアプリでは、ActiveAndroidを使ってDBにデータを保存しています。 ActiveAndroidとは ActiveAndroid とは、Active Recordパターンを採用したAndroidのORMです。 テーブルのCREATEを行うときに、SQLiteOpenHeleperを継承したクラスでonCreateをOverrideしてdb.execQueryでCREATEクエリを実行…としなくても、ActiveAndroidを使えば、 public class MyApplication extends Application { @Override public void
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? スタンダード Android Support Library v4 android-support-v7-appcompat JakeWharton/ActionBarSherlock · GitHub https://github.com/JakeWharton/ActionBarSherlock JakeWharton/Android-ViewPagerIndicator · GitHub https://github.com/JakeWharton/Android-ViewPagerIndicator UI Menu Creati
[Android] JSONの整形ってこんなに簡単にできるの!? 〜ログが劇的に見やすくなる魔法の引数〜 JSON使ってますか? モダンなアプリ開発とJSONは切っても切れない関係です。 今、この記事を見ているあなたもきっとJSONに触れたことがあるでしょう。 今回は、Android開発時に覚えておくと便利なJSONの小技を紹介します。 こんな時に使うと便利です ネットワークとの通信を行うと、レスポンスがJSONで返ってくるってことよくありませんか? そんなときは、大抵ログにレスポンスの内容を表示するものです。 この「ログ出力」するときに今回紹介する小技を使うと、ログが劇的に見やすくなってどんな値が入っているのかが一目でわかるようになります! 結局どうすればいいの? 実際なんてことないものなんで、さらっとご紹介します。 JSONを文字列に変換するときにJSONObject#toString
ReactiveCocoa勉強会関西にてObserverパターンについてお話ししましたので、以下にその内容をまとめます。 Observerパターンは、GoFの23のデザインパターンのうちの一つで、モデルが状態の変化をしビューに通知するパターンです。GUIアプリケーションの開発で多用されます。もちろんスマートフォンアプリの開発においても大変役に立つので、いくつかの例を挙げて見ていきます。 Objective-CのKey-Value Observing static void * Context = &Context; - (void)anything { [object addObserver:self forKeyPath:NSStringFromSelector(@selector(property)) options:NSKeyValueObservingOptionNew conte
Androidってあまり良い本が無い印象なんですが、実際に仕事で少しでも役に立った本をシェアしたいと思います。 WEB+DB PRESS Vol.81 「Androidアプリ開発最前線」という特集が本当に役に立つ。 Android Studio、Gradle、テストやCIなど、まとまった情報がまだ少ない、最近のモダンなAndroidアプリ開発事情に関するノウハウがまとまっている。この特集書いてるのもクックパッドの人達なので間違いない感じ。 改訂2版 Android SDK逆引きハンドブック 定番の逆引き本。1冊あると便利。 Android UI Cookbook for 4.0 ICS アプリ開発術 Androidデベロッパーにはお馴染みの、あんざいゆきさんの本。 Android4系のUIが主に紹介されてる。サンプルコード便利。 Master of Fragment これも、あんざいゆきさ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 まずはマニフェストにインターネット接続権限を追加します。 <!-- AndroidManifest.xml --> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="alone.advent.android.app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.IN
バージョン毎に異なる処理を吸収する 最近では Android 4.x 系の端末もかなり普及し、4.x 系のみサポートするようなアプリ開発も増えてきているように感じています。しかしながら、 2.x 系をサポートして欲しいとう要件もゼロではありません。 各バージョンの対応でよくある問題がバージョン毎にアクセスする API が異なるという点です。4.0 以降で追加された API を 2.x 系では呼ばないようにする (または独自で実装する) などといった対応が必要です。こういった場合によく使うのがバージョン毎に読み込むクラスを変えるという方法です。ということで、今回はその手順を解説したいと思います。ちなみにこの方法は Google I/O 2012 で発表されており、 Lazy Loading というデザインパターンをベースに生み出された手法です。Support Package も同じ手法を採用
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く