android
よく使われている便利なアプリと連携がしたいときがあります。 LINEやTwitterなどのように、スキーマが定義されているものならば、特定できるのですが、そうではないアプリだと、暗黙的Intentを発行し、大量のアプリが候補で表示されます。 したい処理自体は…
ビルドに応じて値を動的に制御したい欲はあると思います。いくつか方法をまとめました。 BuildConfigに追加する build.gradleに定義することで、自動生成されるBuildConfig.javaに値を定義できます。 build.gradleに、直接値を書くのではなくて、gradle.prop…
RecyclerViewで区切り線 ListViewでデフォルトで表示されるあれです。 RecyclerViewだと、デフォルトでは表示されないので、表示されるように実装が必要です。RecyclerViewのバージョンは23.1.0です。 RecyclerViewで行間に区切り線を表示するにあるようにす…
Link Bubbleを使っていて Link Bubbleというアプリがあるのですが、便利です。 TwitterなどのTLを一覧してる時に、いくつも開きたいLinkがあるときに、いちいちブラウザを開いては閉じて開いて、とするところを、開きたいLinkをフローティングアイコンに貯め…
縁あって、学生に様々なスキルを教えるサービスで、Android開発の講義を開きました。その際流れと知見、及び思ったことをまとめます。 経緯 前職の同期が、起業して件のサービス(Trunk)を始めた。エンジニアとしてのスキルなども知っていたため、Androidアプ…
potatotipsとは potatotipsはiOS/Android開発のTipsを出し合う勉強会です。 参加者はTips持参必須です! なお、ポテトチップスは必要に応じて各自で持参しなければなりません。 iOSのtipsはこちらでまとめられているので、Androidのまとめを書きます。 全然…
いくつかGradleスクリプトからビルド対象を変更する方法があります。 productFlavorsでソース切り分け Flavor別に、ソースファイルごとに分けられる機能です。 OEMや、有料版などでソースを一部分載せ替えたりするときなどに有効です。 buildConfigFieldで値…
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 が、投げられるので、それで良いと思って…
開発コンテストとは クックパッド株式会社が毎年開催している あなたの考える「生活をより便利にするサービス」を24時間以内に開発をするものづくりコンテスト です。テーマが設けられており、今年は 「誰かと話すキッカケを作るサービス」 でした。 当日飲…
GoogleIOアプリ GoogleIOのために作られたアプリです。ソースはこちらからクローンします。 Lに対応しているアプリは現状マーケットには存在しない、かつGoogle謹製ということで、マテリアルデザインを理解するための良いサンプルです。 ちょっと動かすまで…
Android開発で良くある場面 さっきまで出力されてたLogがでない! あれ?おかしいなぁ。ここは通ってないのか。こっちにもLogを仕込んでみよう。 あれ?それでもでない。この分岐でどちらにもLogを仕込もう。 これで必ず出るよね。 でない! いやいやおかし…
Reachabilityとは? iPhone 6 & 6 PLUSで導入される仕組みです。デモ動画を見たときに便利だなーと思うと同時に、Androidでも似たようなことができるんじゃないかと思いました。 Reachability on Android 作りました。Reachability Activityに、以下のように…
ビルド終了時に通知を飛ばしたい。 apkをビルドして、deploygateに挙げ終わったら、Slackなどに自動で通知をしたいと思いました。 Slackにテスト投稿がかさむので、PushBulletで試しに検証しました。 execute //build.gradle // 指定したデバイスに通知が送…
実機が一番良いけれど 実機で手元で確認できる環境があるならそれが一番良いけれど、なぜかデザイナーはiPhoneユーザが多いです(体感)。 そのため、Android端末でのWEBの挙動やアプリのUIについて検討する際に、 端末が無かったり、実際に確認したいバージョ…
以下の3種類があります。 A. libs配下にjarを配置 B. ライブラリのprojectフォルダを読み込む C. 外部のリポジトリからローカルに取り込む それぞれの具体的な手順と、長所と短所を上げていきます。 A. libs配下にjarを配置 広告のSDKなどを組み込む際によく…
gradleのタスクのプロパティ値を定義できる gradle.propertiesで定義した値は、build.gradle内で使うことが出来ます。 なので、署名時に必要な情報をgradle.propertiesで定義してファイル自体はリポジトリに含めない方法を取っていました。 しかし、さまざま…
ライブラリプロジェクトの時だけ失敗する。 プロジェクトルートと、モジュールルートのbuild.gradleは次のようになっています。 build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' …