プログラマってこんなかんじ??

アプリ作ったり歌ったりしてます

Android

中洲ジャズ 2019 非公式アプリを作りました (Android/iOS)

本エントリは Android #2 Advent Calendar 2019 の 2日目 になります。 今年はこんなアプリ作りました、実際作ってどうだったか、頑張ったので褒めて、というポエムになります。 自分は福岡で Web/スマホアプリ/LINE Bot、、いろいろと節操なく開発している…

中洲ジャズ 2018 非公式アプリを作りました (Android/iOS)

福岡で毎年行われているジャズフェス「中洲ジャズ」。その非公式アプリを今年も勝手に作りました。 今年は初めての iOS アプリに挑戦したので、今回はそのあたりを中心にまとめてみます。

中洲ジャズ 2017 非公式アプリを作りました (Android)

福岡の中洲で毎年開催されているジャズフェス、中洲ジャズの非公式版クライアントアプリを勝手に作ってみました。 play.google.com どんなアプリか 全体のタイムスケジュールが見やすい まず、公式サイトでは 「誰と誰の演奏がかぶっているか」 がちょっとわ…

AndroidStudio+GAE/J+JAX-RS(Jersey)

Java でサーバサイド書きたいけど Eclipse に戻りたくない、という理由で、まずは GAE/J+JAX-RS(Jersey) の環境構築手順を調べてみた。 手順 module 作成 [File > New > New Module] を選択 [Google Cloud Module] を選択 [App Engine Java Servlet Module] …

Google Apps Script で spreadsheet のデータを JSON として読み込む

Android アプリに限らず、JSON データを表示するようなアプリって作ること多いですよね。で、自分はその時いつもサーバサイド作るのがめんどくさくなっちゃう。なので、spreadsheet のデータをそのまま JSON として返すようなサーバーサイドアプリを GAS(Goo…

Android Design のパターンを実装してみた(Patterns - Multi-pane Layouts)

Android Advent Calendar 2012 12/18(裏) 担当の @daichan4649 です。 よろしくお願いします。 経緯 Android Design のサイト、ありますよね。Android公式から提示されてるガイドライン。アプリはこう作ってねとか、画面遷移はこういう風に、とか、アイコン…

LruCache 使ってみた(android.util.LruCache)

GoogleI/O 2012 のセッションで LruCache の話が出てたので使ってみた。 Doing More With Less: Being a Good Android Citizen pdf(右側の 「Session presentation」 リンク) の p.8 くらいから。 LruCache(android.util.LruCache) Least Recently Used アル…

ビルド時にエラー発生(Error generating final archive)

また出た。 毎年恒例のこのエラー。 対応策は 「debug.keystore」 の削除。 去年の自分のエントリにも書いてた。 Error generating final archive(Debug Certificate expired on~) が発生する このエラーが出たということはー 自分の場合は 「Androidアプリ…

画面回転してもFragment再生成しないでレイアウト変更したい+取得したデータ使い回したい

お題 画面回転させて、縦/横で別のレイアウトを表示する 縦画面のときは ListView を表示 横画面のときは GridView を表示(1行2列) ただし、一度取得したデータは使いまわしたい 縦画面 横画面 実装のポイント Activity コンフィグ変更のたびに毎回 再生成 F…

Activity再生成時のデータの保存・復元(Fragment#setRetainInstance)

ネットワークからデータ取得(画像とか) データ取得完了したら画面にデータ反映 こういうパターンってよくありますよね。このときに画面回転等のコンフィグ変更(縦横切替とか)が行われると 「Activity のインスタンスが破棄->再生成」 されるので、何も考えて…

DialogFragment使用時に画面の回転で例外発生(InstantiationException)

DialogFragment を private なインナークラスで定義してたら、 画面の回転(Activity再生成) でアプリが落ちてしまった。出力された例外はこれ。 Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment ErrorCaseDialogFr…

Android UI Cookbook for 4.0 輪講会 vol.1

Androidの会福岡支部メンバー数人で輪講会をはじめました。今回のお題は通称 yanzm本2 と言われている、 Android UI Cookbook for 4.0 ICSアプリ開発術 です。実はちょっと前に Effective Java 第2版 の輪講をやってみたのですが、 それがまたなかなかおもし…

AsyncTask の挙動(AsyncTask#executeOnExecutor) その2

前回のエントリで AsyncTask#execute の挙動がAPI Levelによって違う、とわかりました。 では、どこで切り替えているのか。 てなことを twitter上 でぎゃーぎゃー言ってたら @zaki50さん から情報をいただきました! (@zaki50さん、ありがとうございます!) …

AsyncTask の挙動が異なる(AsyncTask#executeOnExecutor)

AsyncTask の挙動が Gingerbread と ICS で違う、という話を聞いて調べてみた。複数AsyncTask実行=バックグラウンドで並行処理 と考えてると、実は並行処理になってなくて処理が遅い、ってこと。結論を言うと、ソースをここだけ修正すればよさそう。 修正方…

ListViewの高速スクローラまわりをカスタマイズ(AbsListView#setFastScrollEnabled)

前回 のエントリに引き続き、さらに ListView の高速スクローラまわりをカスタマイズしてみました。 (ついでにタイトル変更) 環境 2.3.3(API Level10)before after スクローラもいじったりましたwここで疑問。 ICSではどうなるのだろうか。 とりあえずソー…

ListView の高速スクロール時ガイドを編集する(AbsListView#setFastScrollEnabled)

Android Advent Calendar 12/18 担当の @daichan4649 です。 豪華メンバーがものすごく有意義なネタを記載されている中で、 空気を無視して ListView について誰得なネタを書いてみるとします。 ListViewには項目が多い場合に 「高速スクローラ」 を表示する…

Android Make Days in 明星和楽 にスタッフとして参加してきました

11/11金 - 12土 で行われた Android Make Days in 明星和楽。 今回自分はスタッフとして参加させていただきました。メイン作業は司会。 部屋が複数あるので3人で交代しつつ、とのことだけども。 こんなでかいイベントで司会とか!!不安でガクブル。 と、自…

Intentの作り方

Activity/Service起動用のIntentを作るとき、 皆どうやってるのだろう、とふと疑問。 例えば Activity#onCreate 内で 「Service(test.intent.TestService)起動用のIntent」 を作るとする。 基本的な作り方はこんなかんじになるのかな? @Override public voi…

別スレッドでキュー管理(Handler, Looper, HandlerThread)

非同期処理を組んでると、 「別スレッド上でも Handler みたいなキュー管理がしたい」 って時があったりしますよねー。(きっと) そんなとき、HandlerThread を使うとわりと簡単に実装できたりする。 HandlerThread(公式) HandlerThread は java.lang.Thread …

Error generating final archive(Debug Certificate expired on~) が発生する

androidプロジェクト をビルド時に突然こんなエラーが出るようになった。 Error generating final archive: Debug Certificate expired on 〜 調べてみると「デバッグ用証明書の期限切れ」で発生するエラー、とのこと。 対処方法は2種類あるみたい。 debug.k…

例外catch漏れ対策(UncaughtExceptionHandler)

全ての例外を自前でcatchしていれば何の問題もないんだけれども、 もしアプリ内で例外catch漏れしてしまった場合、 Dalvik VM まで例外が通知されて 「〜が予期せず停止しました。やり直してください」 のダイアログが出てアプリが強制終了してしまう。 これ…

処理時間測定方法(android.util.TimingLogger)

例えば、アプリ内のボトルネック調査するとき、 重そうな処理にアタリつけて処理時間測定しますよね。 ベタにやるとこんな感じ。 // 測定開始 long start = System.currentTimeMillis(); // 測定したい処理 // 測定終了 long end = System.currentTimeMillis…

Android技術者認定試験制度

自分の Android に関する知識がすごく狭い範囲に偏っているなぁーと 意識することが最近よくあって。 全体を知るために何したらいいのかなーと考えたときに この Android技術者認定試験 を思いだしたので 試験内容を改めてチェックしてみました。 試験は以下…

NativeDriver

Google謹製のテストフレームワークが! Introducing Native Driver サンプルではGoogleMapのテストが記載されとりますね。これはおもしろい。 Android Zaurusさんの日本語訳はこちら。 【超訳】AndroidのUIをUnitTestできるNative Driver テストコード書くの…

ADTのレイアウトエディタがすごい件

いつのまにか ADTのレイアウトエディタ が恐ろしく進化している!! 11(preview版)では xml を直接いじらなくても エディタ上だけでこんなことができたりする。 (正確には 10.x でも動作する機能が一部あり) 共通レイアウトの抽出 アニメーションのプレビュ…

ダイアログの縦横切替でメモリリーク(XxxActivity has leaked〜)

AlertDialog.Builder#show〜 でダイアログ表示した状態で、 画面の縦横切替 を行うと例外発生してアプリ終了してしまった。 ログを見るとこんなエラーログが出力されている。 XxxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$D…

端末起動時に起動する常駐serviceのデバッグ(ACTION_BOOT_COMPLETED)

表題のような常駐serviceを作成しようとすると BroadcastReceiver が intent(ACTION_BOOT_COMPLETED) を受けたらそれを契機にservice起動する という仕組みが主流だと思う。(自分はこれしか知らない)こんなserviceをeclipseで修正/動作確認しようとすると、 …