メモ2ブログ

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

Shinjuku.aar第1回に参加した

Shinjuku.aarとは Shinjuku.aarは、新宿界隈のAndroid技術者たちが 技術ネタで気軽にワイガヤできる コミュニティです。 発表ごとにディスカッションタイムを設けており、発表中の質問やツッコミも随時ウェルカム! さらに、ディスカッションが盛り上がるよ…

MashwmallowでqueryIntentActivitiesの挙動が変わってた

Chrome Custom Tabsを使っていて、公式のサンプルにあるCustomTabsHelperを流用していたのですが、Mashwmallowでうまく動かないことがありました。 CustomTabsHelper内で、PackageManager#queryIntentActivitiesを使っているのですが、その挙動がMashwmallow…

スプラッシュにはActivityはいらない

スプラッシュ iOSだとLaunchScreenとか言われる、起動時に出てくる画面です。 Androidだと、ユーザに無駄な待ち時間を与えるということで不要だと言われてたのですが、最近はGoogle製のアプリが、軒並みスプラッシュを入れてきています。 Bottom Navigation…

GenymotionにGooglePlayを入れようとするとAn error occured while deploying the fileが発生する

Genymotionについては以前触れたのでこちらで。 sakebook.hatenablog.com An error occured while deploying the file. GooglePlayを入れるための準備をしていると次のエラーが発生しました。 Genymotionのバージョンは2.6.0でした。 エミュレータを作り直し…

Androidエンジニアが企画展に作品を出した話

2016/4/30~2016/5/15、2週間と1日、「CreativeAdventure」という、企画展がARTnSHELTERで開催されました。 そこで「Indoor Street」という作品を展示しました。企画展に作品を出すという経験での学びや感想をつらつらと書きます。 きっかけ 大学時代にU-moa…

AndroidでKuromojiを使う

Kuromoji KuromojiはJavaで書かれているオープンソースの日本語形態素解析エンジンです。 Androidでオフラインでも即座に形態素解析ができるように組み込んでみました。 LuceneのJapaneseTokenizerではなく、AtilikaのKuromojiを組み込みました。 はじめに言…

忘れてしまったAndroidの署名情報は見つかるかもしれない

Androidのアプリの署名に使う情報を忘れてしまうことが、稀にあります。 やってはいけないことですが、稀にあります。 別PCで作業してていつもMaster Passwordに任せっきりだったりとか、久しぶりに更新をかけようとしたアプリで起きたりします。 同じ署名の…

jsoupのデフォルトのUser-Agentはなんなのか。

jsoup JavaでHTMLをいい感じにParseできる便利なライブラリです。 WebページにアクセスしてHTMLを取得し、それを加工することでWebページ内のコンテンツを簡単に取得することができます。 スクレイピング先が、User-Agent(UA)によって表示を変えている場合、…

Instagramのユーザページと詳細ページへ暗黙的Intentで遷移する。

普段アプリで表示しているであろうページに、ブラウザで表示する場合があります。 ブラウザアプリを作っていて、何もしないままだとWebページが表示してしまうので、普段表示している方であるアプリへ遷移させます。 Instagram ユーザページと詳細ページを表…

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

再び 以前と同じく、TrunkでAndroid開発のトレーニングを請け負いました。 sakebook.hatenablog.com 今回は、1ヶ月でカメラアプリを作成してストアへ申請するというものでした。 1ヶ月と言っても、1回3時間の講義を4回行うという形式です。 前回の反省を踏ま…

都道府県の情報を簡単に扱うためのライブラリをKotlinで作った。

都道府県コードと都道府県名を変換するようなことをJavaで書いたのが非常に辛かった。 もう同じことをしないでいいように、使いまわせる形にした。 Javaでリスト操作ができなかったのでKotlinでさっと操作したいと思ったのがモチベーションです。 実際Kotlin…

Android Support Library 23.2で追加されたChrome Custom TabsのBottom barを試してみた。

Chrome Custom Tabs Webページを自分のアプリ内ブラウザで開くかのごとく、Chromeを使って開くことができる機能です。 利用するにはChromeのバージョンが45以上であることが必要です。 Chrome Custom Tabs自体は23.1.0から提供されていた機能ですが、新たにB…

potatotips第26回に参加した

potatotipsとは potatotipsはiOS/Android開発のTipsを出し合う勉強会です。 参加者はTips持参必須です! なお、ポテトチップスは必要に応じて各自で持参しなければなりません。 今回は株式会社Supershipで行われました。オフィスに行ってみたかったので、久…

Realmのマイグレーションで Configurations cannot be different if used to open the same file. が発生する

スキーマに変更があったので、マイグレーションを行ったら上記のエラーが発生した。 先に言っておくとマイグレーション自体は本質的な問題ではなかった。Realmのインスタンスの生成方法に問題があった。 Realmのバージョンは 0.87.4を使用。 マイグレーショ…

情報収集のための11の質問に答えてみる

id:koogawaさんからバトンをいただいたので、考えてみました。 blog.koogawa.com 1. RSSリーダーを使っていますか? 少しだけ使っています。 以前GoogleReaderがあった頃はメインで使っていたのですが、終了になるにつれ、だんだんRSSリーダーを使わなくなり…

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の説明はこの記事…

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

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