江戸一番のジャスタウェイ職人のブログ

江戸一番のジャスタウェイ職人

163 Could not determine source user

dev.twitter.com

Error Codes & Responses にないエラーコードで 163 というものがあり、これはフォロー関係を取得するAPIで source_screen_name が不正な場合などに出る。

Twitter は screen_name を変更できるので、これを考慮して極力 screen_name ではなく user_id を使ってAPIを操作しましょう。

https://api.twitter.com/1.1/friendships/show.json?source_screen_name=[変更前のscreen_name]&...

{"errors":[{"code":163,"message":"Could not determine source user"}]}

Holo の時代は終わった

Justawayではナビゲーションドロワーの制御に v4.app.ActionBarDrawerToggle というの使っているんですが、これはもう非推奨で時代遅れでいつ動かなくなるかわかりません。

警告: [deprecation] android.support.v4.appのActionBarDrawerToggleは非推奨になりました

などとビルドの度に言われかなり煽られます。

で、v7.app.ActionBarDrawerToggle というのを使うといいらしいんですが v7.app.ActionBarDrawerToggle を使うにはそもそもアプリのテーマを Holo から Theme.AppCompat などに変える必要があり、それをやるとアクションバーがマテリアルデザインのツールバーに書き換わりかなりアプリのルック・アンド・フィールが変わります、アプリのデザインをカスタマイズしている場合は結構な改修が必要です。

とはいえ Holo ベースのテーマを使い続けるのは限界とわかったのでまたデザインをやり直そうと思います。

デザインにはこだわりも思い入れもあったんですが、Android 4系を使っていた時の2系のデザインのアプリの残念感を思うとマテリアルデザインに慣れた世代が Holo ベースのアプリを見てもダサく見えるのかなぁとか考えてしまいますね。

動画再生の為に止まったミュージックプレイヤーを動画終了後に戻す

私はいつもイヤホンで音楽を聞きながらスマートフォンを操作するのですが、最近は動画によってそれが止まることが増えました、例えば FacebookTwitter、ニュースアプリ...etc

数秒の動画や動画広告の為に何度もミュージックプレイヤーを再生し直すのは鬱陶しくなんとかならないかと思っていましたが、ちゃんと動画終わった後にミュージックプレイヤーが鳴り始めるアプリがあって、「なんだできんじゃん!!!じゃあJustawayも対応するか」とコードを書き始めた次第です。

ざっとこういったコードで対応しています。

Android

final boolean musicWasPlaying = ((AudioManager) getSystemService(Context.AUDIO_SERVICE)).isMusicActive();

// ...

if (musicWasPlaying) {
	Intent i = new Intent("com.android.music.musicservicecommand");
	i.putExtra("command", "play");
	sendBroadcast(i);
}

Justaway - Google Play の Android アプリ

iOS

do {
    try AVAudioSession.sharedInstance().setActive(false, withOptions:
        AVAudioSessionSetActiveOptions.NotifyOthersOnDeactivation)
} catch {
    print("AVAudioSession setActive failure.")
}

aska.hatenablog.com

半年ぶりにJustaway for Androidを更新しました

あけましておめでとうございます。

遂に動画の再生が可能になりました、実に半年ぶりの更新です。

Justaway - Google Play の Android アプリ

「動くやろ〜」と思ってrelease apkの動作確認しないでアップデートしたら起動しなくなるなど不具合が起きるなどトラブルもありました。先人のおかげですぐリカバリーできました、本当にすみませんでした。

Android - GsonとProguard - Qiita

ProGuardは使うべきか

オープンソースなので難読化する意味は無いのですが、minifyによるパフォーマンスの恩恵が少しでもあるなら使おうというスタンスです。

半年間何をしていたのか

for iOS の開発と仕事とプライベートで時間がなかったことと、iOS開発中はiPhoneを持ち歩いていたため、そっちに動画再生機能をつけて楽しんでいました、本当にすみませんでした。

ぶっちゃけどうなんだ

for iOS がリリースされたら作り直すつもりで居たんですが、Twitter社からは書き込み権限を止められAppleからは利用規約を作れと迫られ進んでいません。

流石に動画の再生機能が無いまま半年放置はひどかったなと思っています。

Googleからマテリアルデザインの公開以降、Android向け非公式クライアントもスタイリッシュなのが増えてきましたね。今更更新を続ける意義があるのか疑問をお持ちの方もいらっしゃるでしょう、自分がいちばん使うアプリは自分で作っていたいという想いと、なぜかいまでもJustawayがいいという声がまだあり、続けようかと思っています。

今後の予定

投票APIが来たら対応を、それまではコードもデザインも周回遅れなのを取り戻す予定です、作り直す方が早いかとも思ったんですが結局2つのプロジェクトのソースを見比べながら移植する事になりまたそれも苦行なので、本職らしくリファクタリングしようかと思います。

iPhoneユーザーはバックキーじゃなくてジェスチャーを使うんだよ!!!

iPhoneの画面下にバックキーを追加する強化液晶ガラス保護シートが話題になったりホームボタンのダブルタップで押し下がる画面を見て私も「だからバックキーいるじゃん!!!」と思っていた。

しかしずっとAndroidを使っているうちにiPhoneの操作でジェスチャーをよく使うというのをすっかり忘れていただけだったのだ。

iPhone 6sをしばらく使っていると殆どシチュエーション、例えばプッシュで追加された画面は右スワイプ、画像プレビューなどは上下スワイプでバック相当の動きが出来ていて、画面の左上をタップすることなんて殆ど無い。

Androidはバックキーがあるのでとにかく前の状態に戻りたい時は考えずにバックキーを押すしこれが便利でスマホには必須だと思っていたけどジェスチャーというもの、ジェスチャーというものを、彼の事を忘れていた。

そういった具合にiPhoneアプリはジェスチャーをバリバリ使っていくのがスタンダードで画面下に戻るボタンを置くのは悪手だなと思いJustawayを改良しています。

Justaway for iOS βテスト申し込み

UDIDによるテスター登録上限の100デバイスにそろそろ到達してしまう為、テスター登録をTestFlight(上限1000人)に切り替えます。

TestFlight によるテストには事前のメールアドレス登録が必要です、こちらにメールアドレスを記入下さい。

Justaway for iOS βテスト申し込み

当面新しいバージョンはdeploygate、TestFlight両方で配布するので既にdeploygateに登録している方は新たに登録頂かなくてOKです。

β版の配布は週内には開始予定です。

正式版のリリースはAppleの審査通過次第と考えていますが、はじめての審査なので月末まで掛かる見込みです。