メモ2ブログ

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

2015年を振り返って

2015年は目標を立てていたので、それを振り返る。 (2016年の1月が終わろうとしているので、途中までまとめていたのを急いで公開。) 2015年の目標 個人ページを作成する 進捗なし IoTななにかを作る 頓挫した ハッカソンに3回以上参加する 1回のみ イベントの…

Parallaxでリッチなチュートリアルを作成する

時々見かける、手が込んでる感じがするチュートリアルを作成するためのチュートリアルです。 6つのパターンを紹介します。GitHubに上がっているコードを元に説明します。 github.com 背景をグラデーションさせる インジケーターを表示する インジケーターを…

動きに合わせて色をグラデーションさせる

2色間の色の変化を、時間指定ではなく値の変化で動的に行います。 ArgbEvaluator アニメーションで使いますが、単独でも利用できます。 どこかでインスタンスを生成します。 private ArgbEvaluator mArgbEvaluator = new ArgbEvaluator(); 次のメソッドを呼…

Carthage導入で躓いた

新しくアプリを作るし、対応OSをiOS8からにしているので、ライブラリを導入する際にCocoaPodsではなくCarthageを使ってみることにした。 Homebrewで入れたCarthageのバージョンは0.8.0だった。 12/9追記 Twitterで指摘をいただきました。Carthageのバージョ…

暗黙的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アプ…

iOSでのコールバック処理の3つの書き方(Swift)

最近iOSのアプリ開発ばかりしています。 通信や非同期での処理、ユーザアクションなど、様々な箇所でコールバックを受けたい場合があって、それぞれ適した使いどころがあると思ったのでまとめます。 方法は3つ Protocol Closure NSNotification 一つずつ説明…

potatotips第13回に参加した

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

2014年を振り返って

2014年の目標 明文化することを忘れていたので、ぼんやりと思っていたこと(その時点で良くない)を目標とすると、 Webサービスを一つ作る 外部のイベントで3回以上発表する DL数10000以上のアプリを作る でした。 それぞれに対して振り返ります。 Webサービス…

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 が、投げられるので、それで良いと思って…

ディスプレイなしでRaspberry Piを動かす

目的 よくWebサービスで音楽を聴くので、それがラズパイでできれば省エネになるし、 本体の挙動を阻害しないなーと思ったので、試みました。 作業用PCからコマンドラインでWebサービスの音楽を変更したり、 スマホをリモコンにして同じことをするのがゴール…

第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.+' …

ブログを引っ越しました。

bloggerからはてなブログへ こちらの記事を参考にしました。 しかし、過去の記事はインポートせずに、そのままにしておくことにしました。 崩れたり、同じコンテンツが重複してしまうことになるので、やめました。 それでも移行した プログラマになってから…