メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

android

暗黙的Intentを絞り込んで明示的Intentのように連携する

よく使われている便利なアプリと連携がしたいときがあります。 LINEやTwitterなどのように、スキーマが定義されているものならば、特定できるのですが、そうではないアプリだと、暗黙的Intentを発行し、大量のアプリが候補で表示されます。 したい処理自体は…

ビルド時にいろんな値を生成する

ビルドに応じて値を動的に制御したい欲はあると思います。いくつか方法をまとめました。 BuildConfigに追加する build.gradleに定義することで、自動生成されるBuildConfig.javaに値を定義できます。 build.gradleに、直接値を書くのではなくて、gradle.prop…

RecyclerViewで区切り線を引いてアニメーションさせる

RecyclerViewで区切り線 ListViewでデフォルトで表示されるあれです。 RecyclerViewだと、デフォルトでは表示されないので、表示されるように実装が必要です。RecyclerViewのバージョンは23.1.0です。 RecyclerViewで行間に区切り線を表示するにあるようにす…

Link Bubbleの代わりに使うアプリ「Link Stack」を作った

Link Bubbleを使っていて Link Bubbleというアプリがあるのですが、便利です。 TwitterなどのTLを一覧してる時に、いくつも開きたいLinkがあるときに、いちいちブラウザを開いては閉じて開いて、とするところを、開きたいLinkをフローティングアイコンに貯め…

Androidアプリ開発を学生に教えた話

縁あって、学生に様々なスキルを教えるサービスで、Android開発の講義を開きました。その際流れと知見、及び思ったことをまとめます。 経緯 前職の同期が、起業して件のサービス(Trunk)を始めた。エンジニアとしてのスキルなども知っていたため、Androidアプ…

potatotips第13回に参加した

potatotipsとは potatotipsはiOS/Android開発のTipsを出し合う勉強会です。 参加者はTips持参必須です! なお、ポテトチップスは必要に応じて各自で持参しなければなりません。 iOSのtipsはこちらでまとめられているので、Androidのまとめを書きます。 全然…

GradleビルドでPropertyを渡してBuildConfigに追加する

いくつかGradleスクリプトからビルド対象を変更する方法があります。 productFlavorsでソース切り分け Flavor別に、ソースファイルごとに分けられる機能です。 OEMや、有料版などでソースを一部分載せ替えたりするときなどに有効です。 buildConfigFieldで値…

Go mobileでサンプルアプリを動かした

go1.4 Androidに対応したのが1.4からなので、そうでない場合は最新版にします。 homebrewで入れたので、以下のコマンドを入力します。 $ brew upgrade go $ go version go version go1.4 darwin/amd64 合わせてGOPATHも確認します。 GOPATHの説明はこの記事…

誰得アプリ「さよならを言おう」を作った

アプリのインストールの検知をすることが何回かあったのですが、 ふとアンインストールの検知もできないのかなと試したところ、 できたので、そのアプリがアンインストールされた時に断末魔を残すアプリを作りました。 さよならを言おう アンインストールの…

アプリのインストール・更新・アンインストールの検知

Broadcast アプリの情報の変化に関するものは、BroadcastがOSから投げられるので、それを受け取るように作れば、検知できます。 引っかかったところ アンインストール時には、android.intent.action.PACKAGE_REMOVED が、投げられるので、それで良いと思って…

第5回 開発コンテスト24に応募した(入賞せず)。

開発コンテストとは クックパッド株式会社が毎年開催している あなたの考える「生活をより便利にするサービス」を24時間以内に開発をするものづくりコンテスト です。テーマが設けられており、今年は 「誰かと話すキッカケを作るサービス」 でした。 当日飲…

エミュレータのAndroid LでGoogleIOアプリを動かす

GoogleIOアプリ GoogleIOのために作られたアプリです。ソースはこちらからクローンします。 Lに対応しているアプリは現状マーケットには存在しない、かつGoogle謹製ということで、マテリアルデザインを理解するための良いサンプルです。 ちょっと動かすまで…

Logcatがおかしくなった!を一発で解決する

Android開発で良くある場面 さっきまで出力されてたLogがでない! あれ?おかしいなぁ。ここは通ってないのか。こっちにもLogを仕込んでみよう。 あれ?それでもでない。この分岐でどちらにもLogを仕込もう。 これで必ず出るよね。 でない! いやいやおかし…

ReachabilityをAndroidで実現するライブラリを作った

Reachabilityとは? iPhone 6 & 6 PLUSで導入される仕組みです。デモ動画を見たときに便利だなーと思うと同時に、Androidでも似たようなことができるんじゃないかと思いました。 Reachability on Android 作りました。Reachability Activityに、以下のように…

GradleスクリプトからShellを実行

ビルド終了時に通知を飛ばしたい。 apkをビルドして、deploygateに挙げ終わったら、Slackなどに自動で通知をしたいと思いました。 Slackにテスト投稿がかさむので、PushBulletで試しに検証しました。 execute //build.gradle // 指定したデバイスに通知が送…

Androidを持っていないデザイナーはGenymotionをいれてDeployGateと連携させよう

実機が一番良いけれど 実機で手元で確認できる環境があるならそれが一番良いけれど、なぜかデザイナーはiPhoneユーザが多いです(体感)。 そのため、Android端末でのWEBの挙動やアプリのUIについて検討する際に、 端末が無かったり、実際に確認したいバージョ…

Android Studioでライブラリを取り込む3つの方法

以下の3種類があります。 A. libs配下にjarを配置 B. ライブラリのprojectフォルダを読み込む C. 外部のリポジトリからローカルに取り込む それぞれの具体的な手順と、長所と短所を上げていきます。 A. libs配下にjarを配置 広告のSDKなどを組み込む際によく…

gradle.propertiesはリポジトリに含めるべきか

gradleのタスクのプロパティ値を定義できる gradle.propertiesで定義した値は、build.gradle内で使うことが出来ます。 なので、署名時に必要な情報をgradle.propertiesで定義してファイル自体はリポジトリに含めない方法を取っていました。 しかし、さまざま…

Robolectricを使ったライブラリプロジェクトのビルドでテストが失敗する

ライブラリプロジェクトの時だけ失敗する。 プロジェクトルートと、モジュールルートのbuild.gradleは次のようになっています。 build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' …