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

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

Android で 中洲ジャズアプリ(非公式) を勝手に作ってみました

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

LINE 上で福岡のジャズライブを検索できるサービス(LINE BOT) を 10ヶ月 運用して思うこと (ライブ情報の収集)

daichan4649.hatenablog.jp jazzspot-fukuoka が配信している「ライブ情報」。これはどこかにまとまっているものを単純に出しているわけではなく、管理人が自力で 収集したデータをもとに配信しています。 今回はどうやってこれを実現しているかを書いてみま…

LINE 上で福岡のジャズライブを検索できるサービス(LINE BOT) を 10ヶ月 運用して思うこと

趣味でこんな LINE BOT を作って運用してます。 https://jazzspot.jp/fukuoka/ なんとなくひと区切りしたので、いろいろと思うことをまとめてみました。 どんな BOT ? 「福岡のジャズスポットのスケジュールを横断検索できる」検索型 BOT です。 ジャズミュ…

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 から Googleカレンダーへイベント一括登録(2016/3/23 時点)

GAS

Googleカレンダーにイベントを一括登録したい事案が発生したので調べてみた。Calendar 系は使ったことなかったけど、予想以上にお手軽だった。 このデータ達がー こうなる。 手順 データ登録(spreadsheet) date: イベントの日程 title: イベントのタイトル d…

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…

はてなblogに移行しました

一括インポート機能を使用して移行してみました。 idが dai4649 だったり。 URLは daichan4649 だったり。 いろいろとややこしいのですが、こちらでも4649お願い致します!

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人で交代しつつ、とのことだけども。 こんなでかいイベントで司会とか!!不安でガクブル。 と、自…

12歳の頃

12歳の子どもが独学でプログラミングをおぼえ, ついにiPhoneアプリの会社まで設立 12歳。。だと。。。 自分が12歳の頃を思い出してみた。 「unk!unk!」言ってキャッキャしてただけのただのガキンチョだった。 正直今もあまり変わってません。 がんばります…

アイコン変えてみた

明星和楽 に参加した際に 100face さんにフェイスアートしていただきました! さっそくアイコンに使わせていただいてます!

Intentの作り方

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

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

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

東日本大震災から半年経って思うこと

実は母親と祖父が福島に住んでいたりする。 原発から半径数十キロとかそのレベル。 直接的な津波の被害にはあっていないのだが、 震災が起きた際にはもちろん電話も通じず、物流も止まってた。 ただ、わりと早い時間で電気/ガスも復旧し、 今は普段どおりの…

スマホアプリ開発について考えたこと

先日、某社のスマホ事業部の方々とお話しする機会をいただき、 その場に来られていた皆さんといろんなお話をさせていただいた。 自分のモチベがものすごく上がったと同時に、 ネタをすぐに実現する行動力 ネタをすぐに実現できる開発力 この2点を高めること…

デバッグとは

なんで「デバッグ」って言うのだろう、とふと考えてみた。 バグ (英: bug) とは英語で虫(成虫)の意であり、転じてコンピュータプログラムの製造(コーディング)上の誤り・欠陥を表す。ソフトウエア・ハードウエア開発における契約文書など、法的な文書で…

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技術者認定試験 を思いだしたので 試験内容を改めてチェックしてみました。 試験は以下…