本サイトではサービス向上のため、Google Analyticsを導入しています。分析にはCookieを利用しています。

getApplicationContext() is almost always wrong. Ms. Hackborn (among others) have been very explicit that you only use getApplicationContext() when you know why you are using getApplicationContext() and only when you need to use getApplicationContext(). To be blunt, "some programmers" use getApplicationContext() (or getBaseContext(), to a lesser extent) because their Java experience is limited. The
Starting with a recent new version of ADT, I've noticed this new attribute on the layout XML files, for example: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context=".MainActivity" /> What is "tools:context" used for
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Android アプリの開発で起きがちな問題を予防するためのコードレビューのチェックリストです。 チェックリストの方針 極力数少ない項目で多くの問題を防げること。 要は「最低限これを守ってくれるとまずまず OK だと思います」くらいのものです。 項目が少ないので重要な事柄に集中できますしレビュワの経験が少ない人もとっかかりやすいと思います。 全体的に、開発経験がそこまで豊富ではない方向けのチェックリストになっていると思います。 チェックリスト 全4項目です。 1. なるべく Activity にフィールドでフラグを持たせないこと そうす
1. 概要 Android Support Library のバージョン 24.2.0 がリリースされましたが、このバージョンから v4 Support Library を分割されたものが使えるようになりました。 参考:Support Library Features 以下の Library 群として提供されています。 support-compat support-core-ui support-core-utils support-fragment support-media-compat とはいえ、Support Library 群で最も大きかった v4 なので、どのライブラリに何があるのか分からないのが不便だったので、調べてみました。 2. パッケージ構成 support-compat android.support.v4.accessibilityservice android.s
タイトルは誇張です。 みんな大好きpotatotipsという勉強会で以下のようなトークがあったようです。(現場には行っていません) 曰く「ActivityContextで何千回もやったら数回リークが検出された。 なるべくApplicationContextを使おう」とのことらしいですが、間違いなく死人が出る(誇張)と思いますのでご注意ください。 (追記20160527: 修正されたようです なんかすみません) speakerdeck.com 結論 Application Contextは使わないでください。(誇張) (実際は使うときは使う) なぜApplication Contextなのか Application Context使おうぜ!という根拠の記事としてこちらのフェンリルのDeveloper's Blogの [追記あり] Android 開発で気をつけたいこと 〜変数名と Conte
画像の一時保存の方法 画像処理するアプリを作成する場合、 カメラやギャラリーで取り込んだ元のデータを一時的にもっておきたい時があります。 そのときメンバー変数にBitmapをもっておくと、ある程度でかい画像をもっておくと すぐにOutOfMemoryがおきてしまいます。 いままでに一時的にデータを保持する方法をいろいろ試したのでメモしておく。 メンバー変数 メリット 簡単 デメリット アクティビティ終了されたらきえる メモリにやさしくない コード private Bitmap cache; ファイルに書き出す メリット -メモリ優しい デメリット 残ってしまった時に、ギャラリーで表示されてしまう コード try { // sdcardフォルダを指定 File root = Environment.getExternalStorageDirectory(); // 日付でファイル名を作成 D
getFilesDirで取得できるPath以下にファイルを作成する。第1引数にファイル名、第2引数にアクセスモードを指定(MODE_PRIVATEが一般的)する。 ActivityクラスのgetFilesDirメソッド、getCacheDirメソッドを使うと端末で指定されているアプリケーション専用のデータ領域を取得できます。 ログにパスを出力するだけの簡単なサンプルコードを用意しました。実行してマルチユーザ時の挙動を確認してみましょう。 //アプリケーション専用データ領域 //ファイル保存ディレクトリ Log.d("Multi", " getFilesDir(): " + getFilesDir()); //キャッシュ保存ディレクトリ(消去される可能性あり) Log.d("Multi", " getCacheDir(): " + getCacheDir()); ※ちなみにCacheDirは
Androidで他のアプリに何か処理を投げたいときには、Intentというものを使う。 明示的Intentと暗黙的Intentというものがあって、明示的Intentは呼び出したいActivityのClassを直接指定する。 暗黙的Intentは呼び出したいActivity(というかアプリ)の種類や、どういうことをしてほしいかといったことを設定して投げると「俺それ出来るよ!」ってアプリが担当してくれる。 ということは良く知られてることで、頻繁に使うことなんだけど、自分で作ったり保存した画像を他のアプリに渡したいときに、Intentに画像を指定する方法でハマった。 いろんな方法がインターネットに乗ってたけど、Intentを受け取ってはくれるものの画像が読み込めないで不正終了してしまうなんてことがよく合った。 デフォルトのギャラリーやGoogle謹製のフォトなんかもエラー落ちしてしまうということ
翔泳社では、4月から取り組んでいるデジタルファーストの第一弾として、技術系同人誌を制作しているTechBoosterの同人誌を出版しました。今回、プロジェクト始動を記念して代表の日高正博さんとCodeZine編集長の斉木による対談を実施。TechBoosterでの制作手法や、出版社側の意図が明らかになります。 翔泳社では「デジタルファースト」というプロジェクトを4月から始めました。これは流行やいまのニーズに合わせた書籍、ニッチなテーマだけれど広く知られる価値のある書籍、あるいは既存書籍のワイド版などをより多くの方に手に取っていただくために、まず電子書籍やPOD(Print On Demand、注文ごとに印刷する形式)で出版していこうという取り組みです。 CodeZineでは、技術系同人誌を制作されているサークル・TechBoosterから既刊の『Android実践プログラミング 現場で生ま
Javaの話はいろいろあると思いますが、Android開発を極めていくにはどうしたらいいかという話を吐き出してみようと思います。 開発入門向けのガイドはいいもの https://github.com/mixi-inc/AndroidTraining があるので、より実践的な内容をどうするか、という話にフォーカスします。 Androidなデザインと開発 Material Designのガイドライン Googleが考えた最強(?)のデザインガイドライン、それがマテリアルデザインです。 https://www.google.com/design/spec/material-design/introduction.html 使うべきUI部品、リスト表示のレイアウト、ダイアログを使うタイミングと表示内容、遷移アニメーションの使い方など多岐に渡ります。 この内容に沿って開発するとかなりモダンなAndr
前置き AndroidのSharedPreferencesは永続的なデータや設定値などを保存するために使う。 実ファイルとして/data/data/[パッケージ名]/shared_prefs/以下にxml形式で保存される。 よってファイルIOが発生するのだが、実際にどのタイミングで読み書きが発生しているのかを調査し、アプリの最適化に役立てる。 環境 主にAndroid5.1.0のコードで確認 SharedPreferencesのメモリキャッシュ SharedPreferencesの実挙動部分はSharedPreferencesImplに実装されている。 その中のフィールドの一つにprivate Map<String, Object> mMap;があり、すべてのKey-Valueの組はxmlファイルとは別にメモリ上でも管理されていることになる。 書き込み SharedPreferencesへ
Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Contributors | Android Open Source Project これはいわゆるハンガリアン記法の変種で、こういうやつですね。 class Recipe { private String mTitle; private List<String> mSteps; // ... } これについての態度はプロジェクトごとに様々ですが、たとえばクックパッド社のJavaのスタイルガイドでは明確に否定しています。 styleguide/
はじめに Android SDK には、面倒であったり、冗長になりがちな処理を行なってくれる Util クラスが数多く存在します。 意外と知られていない便利な Util クラスもあります。 ということで、Androidアプリを開発する上でぜひ使っていきたい便利な Util クラスをまとめました。 TextUtils Linkify DateUtils Formatter Pair SparseArray FloatMath Color ThumbnailUtils TextUtils http://developer.android.com/reference/android/text/TextUtils.html String の Util クラスです。 isEmpty は String の null と length = 0 をまとめてチェックしてくれます。このあたりはよく必要になるん
最初に 本来は@takahiromさんが書く日だったのですが。もう埋まっちゃったよ!と僻んでいたら枠もらえました。本当にありがとうございました! @takahiromさんとはある勉強会でお会いしたのを機にPreLollipopTransitionなどで絡み出した縁で仲良くさせて頂いています。@takahiromさんの記事を期待していた方はこちらへおまわりください。 そもそも誰? 本題に入る前に、そもそもお前誰だ?なんでAPTを語る?って人が多いと思うので、自己紹介させて下さい。 Annotation Processing Tool(またはAPT)でのコード自動生成が好き過ぎて自作のステートパターン用APTライブラリを公開しただけでは飽きたらず、AndroidライブラリでAnnotationといえば、AndroidAnnotations(AA)でしょってことで、PRを投げ始めました。ついさっ
モバイルDevOpsカレンダーの2日目です。 お仕事では Android を書いているので、 Android の DevOps について書こうと思います。 開発と運用の苦しみ 一日目に tnj さんが書いてくださいました通り、 モバイルの開発・運用をする上で、我々エンジニアが目指すところがあります。 全ての 人間に頼らず解決できる仕事 を生まれる前に消し去りたい。 我々開発者は、なぜか日々苦労してコードを生産しています。 そして、のちのちにそのコードのメンテナンスで苦しむ羽目になります。 苦しい思いはしたくない!! 何が我々を苦しめるんだ!?!?! 我々が書いたコード だ!!!! となれば、そう、 メンテナンスすべきコードがなければ苦しまずに済む のです! 人間が書いて管理するコードが減ればいい! でもプロダクトが出来上がらないとお客様に価値提供なんてできない! 収入もない、生きて行けない
ちょっとでもJava7なAndroidを気持ちよくプログラミングしたい、 Javaっぽい(?)ところがありつつもモダンなパラダイムが取り入れられているScalaが羨ましく見えたので、Scalaっぽく書きたいという意志から書いています サンプルコードでは紙面の都合上、retrolambdaでlambda式使っています Scalaの羨ましいところ 挙げればキリが無いですが、以下とします 関数型プログラミング 強力な式 関数型プログラミングっぽく これについてはRoppongi.aar #2 - connpassで私が発表した内容がベースとなっています OOなjavaで無理して関数型プログラミングを目指すのではなく、関数型プログラミングの中でもモナドといわれる便利なデータ構造を便利に使いたい、といった程度のものです そこで、Androidでもモナド実装して使えば気持ちいいんじゃないか、ということ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く