2020年5月28日木曜日

GoogleドライブにバックアップしたFLAC形式音楽ファイルを有効活用したい

緊急事態宣言が解除されましたが、まだまだ在宅勤務が続きます。
さすがに、ただパソコンと向き合う日々もしんどいものがあります。
以前使っていたスマートフォン(Xperia Z5 Premium等)のmicroSDカードに入れていたFLACの音楽ファイルを、OSのアップデートや初期化などをする際にバックアップとしてGoogleドライブにアップロードしてありました。
Xperiaのミュージックアプリ自体、Googleドライブに対応してはいるんですけど、なぜかMedia Goで取り込んだflacファイルを音楽データとして認識してくれなかったんですよね。

アプリ単位でGoogleドライブに対応できるなら、Googleドライブにある音楽ファイルデータをそのまま聴けるプレイヤーだってあるだろ??
ということで探してみて、このアプリを使ってみました。

Spiral Player
https://play.google.com/store/apps/details?id=com.spiralplayerx&hl=ja

これがとても良く出来ていて、広告もありません。
2021/10/20追記
いつのまにか広告増えてました。
再生中の曲が後半になってくるとバックグラウンドで次の曲データをDLしてくれ、トラックが変わるまでにDLが終わってるとそのままトラックが変わります。
ローカルにファイルとしてダウンロードすることも可能みたいです。
Google Playミュージックを無料で使うには改めてPCからアップロードしないといけないんですが、Googleドライブからまた移動するのも面倒なんですよね。
なので移動の手間なく、楽曲データファイルを読み込み、再生するときに都度データをダウンロードするのはWiFi環境がある家の中では通信量も気にしなくて良いので気兼ねなく、しかも仕事に差し支えることもなく使えます。
Googleドライブの容量をサブスクリプションで増やしているので、有効的な使い方がやっと見つかった感じです。

これは久々に良いアプリに出会えました。
ドライブは無料でも結構な容量が使えるので、mp3などお持ちの方、PCの容量削減もしながら使ってみてはいかがでしょうか。

2020年5月17日日曜日

Overlayを使ったアプリケーションは難しい

仕事ではUIを持ったアプリの開発と持たないアプリの開発、どちらも同じくらいやってるんですが、持たないアプリの開発がここ数年続いていたのもあって、上手く進んでない感じです。
特にフローティングアプリは開発したことがないので、トライアンドエラーを繰り返すしかない。

在宅勤務のため、会社PCに重きを置いたデスクレイアウトになってしまっているので、この辺りにもやりづらさみたいなものが・・・。
しっかりFSをして、そっから設計していかないとダメですね。そのFSでつまづいてますが・・・。

公開するつもりがないものですが、ある程度見映えもいいものにしたいです。

2020年5月12日火曜日

TYPE_APPLICATION_OVERLAYを利用したアプリの開発を再開してみようと思っている話

SYSTEM_ALERT_WINDOWが必要なオーバーレイできる画面を持ったアプリ。
昔はSwipePadというアプリを使っていました。
ホームアプリだけでなく、SystemUIよりも上位のレイヤーにアプリを表示することで、ショートカット起動などを行えるとても便利なアプリです。
しかし現在ではこのアプリはまともに使えません。
SystemUIより上位のレイヤーへの表示はできなくなり、そのレイヤーへの表示をするためにServiceを使いますが、Serviceの起動は画面を持ったコンポーネントからのみ可能に、TYPE_APPLICATION_OVERLAYでも使用には明示的に有効化する必要があります。
まぁなぜかというと、この機能を悪用して画面を操作不能にすることだってできちゃうからです。
ホーム(ランチャー)アプリもしっかり作らないと操作不能になっちゃいますけど、とにかくユーザーが意図して設定したアプリ以外が画面をAndroidのUIよりも強くできるのは良くない!というものです。

上位レイヤーが下位レイヤーに対してイベントをそのまま通知することも出来るので、SwipePadのような便利なアプリもあるのですが・・・。
あるアプリに対して似たようなことを実現したかったのですけど、2週間くらい格闘して諦めてしまっていました。

ところが、Octopusというアプリがやりたいことをほぼ実現できていることを先日知りました。自分がやろうとしていたことと何が違うのか、これがなんとなくですが想像できたので、アプリ開発の再開を決意しました。
とりあえずはとにかく自分が使えるように。出来るようになったとしても公開するかはもちろん未定です。
ただ、もう一度やってみる価値はあるな、と思い至った次第です。

仕事だけだとAndroidアプリそのものの開発は今はそんなでもないので、気晴らしと勉強にって感じですね。
上手くいくと良いのですが。

2020年5月6日水曜日

Android DeveloperPreviewの公開情報を見てみよう

Android DeveloperでAndroid 11 DeveloperPreviewが公開されています。
ここ数年、Androidの新バージョンはメジャーバージョンのアップデートリリースをかなり早めています。
大体のメーカーは新しいOS versionが出てから半年ほどで、新製品に搭載して発売する、ということはできていますが、すでに発売されている端末のOS version-upがなかなか進まないのが現状です。
ニュースサイトが2020年4月時点でのシェア予測を出していましたが、Android 10はまだまだ普及していないとレポートしていました。

そんな状況ではありますが、DeveloperPreviewは公開されているので、インパクトの大きそうな変更を見ていこうと思います。

・すべてのアプリに対する変更
1回限りの権限
  -> 位置情報、マイクまたはカメラに関連する権限をリクエストするたびに、一時的な「1回限りの権限」がアプリに付与される。
iPad OSというかiOSで「起動中のみ許可する」みたいなのとはちょっと違い、ユーザーが「今回のみ」を選んだ場合にワンタイムパーミッションが付与されるようです。フォアグラウンドプロセスが生きている限り有効のようで、アクセス権を失ったりすると、システムがアプリのプロセスを終了するそうなので、メンバに持っているオブジェクトでnullチェックをしていない場合は注意が必要そうです。
これに伴い、「許可しない」を2回選択した場合、「今後表示しない」ことを希望していると同義であると判断されるようです。今後、チェックボックスによる「今後、このダイアログを表示しない」というUIをなくすようにポリシーが変更されるかもしれませんね。

バックグラウンドでの位置情報のアクセス
 -> Android 11をターゲットとするアプリは、このアクセスを常に許可するように直接リクエストすることはできません。
上記に伴う変更で、特に位置情報については、常に「1回限りの権限」を付与して動作させるよ、ってことでしょうか。位置情報はかなりセンシティブな情報なので、取得方法がかなり厳格になってます。

ACTION_MANAGE_OVERLAY_PERMISSIONのインテント
 -> 常にトップレベルの「設定」画面に移動し、SYSTEM_ALERT_WINDOW権限を付与したり、取り消したりすることができる。パッケージを指定してアプリごとの個別の権限を管理する画面に移動できたが、これをサポートしなくなったということです。

・Android 11をターゲットとするアプリ
カスタムトーストビューのブロック
 -> サポートを終了します(!!!)。これはかなりインパクトがありそうです。
targetSdkVersionが古めのUIをかなり弄ってるアプリはToastで使うレイアウトも変更している気がします。Android Developerでは「バックグラウンドからカスタムビューを含むトーストを送信しようとするとブロックされます。」と記載があることから、フォアグラウンドでは問題なさそうに見えますが、そもそも使用をオススメしないとあります。スナックバーを使ってくださいとのこと。テキストだけなら特に制限されないAPIのようです。

フォアグラウンドサービスのタイプの追加
 -> cameraとmicrophoneが追加され、AndroidManifestのServiceタグにある、foregroundServiceType 属性に追記する必要があるようです。

開発者としては権限周りがまた変わったなぁという印象。トーストのカスタムビューのサポート停止はちょっとびっくりしました。
権限周りはtargetSdkVersionに依らない変更になるので、位置情報・カメラ・マイクの権限を使う際は注意したいですね。

2020年5月3日日曜日

AOSPについてと、5G時代に突入した端末の話

AOSPとはAndroid Open Source Projectの頭文字です。
聞いたことあるって方も多いと思います。
AndroidはこのAOSPがベースとなり、このAOSPに当たるコードは改変が自由となっています。ただし、オープンソースであるがゆえに、その改変したコードも公開する必要があります。
ピュアネスAndroidのビルドは該当のコードだけでもできるはずです。
Androidのビルドなんかは手順が公式サイトにて公開されています。
https://source.android.google.cn/setup/build/building?hl=ja


日本のキャリア向けの主要なメーカーはSony Mobile、Samsung、SHARPの3社でしょうか。
去年とにかく強かったのはHUAWEIですが、今年からの新端末はGoogleの認可が下りないでしょうから、ちょっと除外しました。
というわけで各社開発者ページが設けられております。
GoogleもGitHub上でAOSP元コードを参照することができます。

Sony Mobile
https://developer.sony.com/ja/develop/open-devices/downloads/open-source-archives
Samsung
https://opensource.samsung.com/uploadList?menuItem=mobile&classification1=mobile_phone
SHARP
https://k-tai.sharp.co.jp/support/developers/index.html

興味があったら覗いてみてくださいね。

ここからは5Gのサービスも始まった各社端末のお話。
Xperia 1 IIはSoftbankでの取り扱いが見送られました。
その分去年楽天がXperia Aceを扱っていたりします。
楽天は今後3大キャリアが採用しないミッドレンジXperiaの取り扱いをしてくれるのではないかと期待してます。
そこそこ要望の多かったXperia 10をどのキャリアも採用しませんでしたが、今年はdocomoとauがXperia 10 IIの取り扱いがあります。
もし秋にXperia 8の後継機(Xperia 8 II?)が出るとして採用したら、結構流れる可能性があると思います。
au、Softbankは中国メーカーの採用が顕著ですね。。。一年後にこういった紹介をするなら、ここで採用されたZTE、Xiaomi、Oppoなどですかね。Xiaomi、Oppoは割と良い印象を持っています。
国内ではLGは中堅でたまに顔を出す程度(世界の業績もイマイチかな?)。ピンポイントなコラボ端末を出してくれる、特定のユーザーにはありがたいメーカー。ではあるのですが、端末の完成度は個人的には微妙。
富士通は久々のハイエンドが発表されましたが、らくらくスマホを常に供給してますね。
富士通ハイエンドは苦い思い出しかないという方がほとんどだと思いますが、果たして。

5Gの恩恵はまだまだ感じられない時期ですが、サービス拡充時にそれを享受できるのはSamsungのGalaxyシリーズのみかな?スペックとしてもGalaxyはいつもちょっと先を行っているイメージですね。高いですけど。
Xperia 1 IIとAQUOS 5Gはミリ波対応していなかったと記憶しています。
その中で選ぶとすると、スペックで言えば断然Galaxy、クリエイティブに偏ったのがXperia、それ以外は好みといったところです。
価格と相談すると中国メーカーも視野、ですよね。スペックも良いですし。
ずっとXperiaを使い続けてきているので個人的にはXperia 1 IIを推してしまいますが。

余談。あまり国内では注目されませんが、海外特に米国では京セラがかなりのシェアを持っています。アウトドア向けタフネススマホを供給する数少ないメーカーで評価が高いです。
サブ機としてPHSの勢いがあったときHONEY BEEシリーズが話題でしたが、こちら京セラ製。
いつか国内でも日の目を見る日が来るのでしょうか。

2020年4月30日木曜日

YouTube LiveとiPadでクリエイト

先日YouTube Liveでのテスト配信をやってみました。
何度か試した結果、なんとかまともに配信することができました。

全画面で表示してしまうと画面の粗さが顕著なので、レンダリングする画面をあまり引き伸ばさないように工夫したいと思います。

そこで、ここでも役に立つiPad Proさん。
配信用にゲーム画面を囲うフレームを作ってみました。
本配信でお披露目したいところです。

あとはサムネイル画像がどうしてもアイコンになってしまうので、これもある程度しっかりしたものを作ろうと思います。
アイコンはさっさと変えましょう。IIDXのクプロでいいかな?ドロイドくんでもいいけど。

ところでiPad版のChromeだとBloggerの表示が少しされてしまってちょっと辛いです。

2020年4月26日日曜日

Android端末でよく使うオススメアプリ

iPad Pro 11インチ 2020年モデルでBloggerの更新頻度を上げようと頑張っています。
どうも、てつん@Syllable_Worksです。

iPad Proは買いましたけど、普段持ち歩くスマートフォンはAndroidです。
iPhoneは持ってません。現在のメイン端末は2018年に発売されたPixel 3になります。
それまでNexus 5を除き、歴代使用端末は全てXperiaシリーズです。
iPad Proを購入したことで、使用していたXperia XZは役目を終えました。

XperiaもAndroid初号機であるXperia X10発売(国内ではdocomoからXPERIA SO-01Bとして発売されました)から10周年です。
SO-01BでスマートフォンデビューしてからずっとXperiaとGoogle端末で過ごしてきました。
今日ではGoogleアカウントにより端末変更をしてもある程度の環境がすぐバックアップから復元できるようになり、とても便利になっています。
必ずそこにも含まれるアプリをいくつかご紹介します。

1. twitcle plus
本気でおすすめするサードパーティーTwitterクライアントアプリです。
マルチアカウントに対応し、ペインでタイムライン表示が可能です。
カスタマイズが豊富で、自分の投稿、他人の投稿、リプライなどの色設定を始め、スワイプやフリックによる操作で利便性を高める構造やUI、マテリアルデザインにも対応しているなど、痒いところに手が届いているアプリです。
有料アプリではありますが、買い切りのため、一度購入すれば端末移動の際に追加料金は要りませんし、サブスクリプション要素もありません。
設定のエクスポート、インポート機能もあるので、環境復元がとても簡単なのもグッドです。アンケート機能だけは公式Twitterアプリ専用なので、一部機能はTwitterの制限で使えませんが、それでもお金を払う価値はあります。

UI/UXが多少違いますが、iOS版もあります。iPad Proを購入後、一目散にインストールしました。Android版を使ったことがある方に朗報、本当にほぼ同じです。
https://apps.apple.com/jp/app/twitcle-plus/id1174134721

2. Keep メモ
Googleのメモアプリ。アカウントに紐ついているのでマルチデバイスで使えます。
とりあえずメモっておいて後で別の端末で見る、とか楽で重宝します。
何よりWebアプリ版、netiveアプリ版とプラットフォーム間、OS間を跨げるのが良いです。
昔はChromeアプリにChrome to AndroidなんていうURL共有アプリなんかあって使ってましたが。
Evernoteは使ったことがないので比較はできませんが、異なるOSで共有する際には良いんじゃないんでしょうか。

3. X-plore
ファイル管理アプリです。アプリ内にビューアーを内蔵してたりします。
ツリー構造UIで表現されるペインが左右に分かれており、コピーペーストなどは一方のペインからもう一方のペインに2アクションで適用されるなど基本的なファイル管理が簡略化されています。
Zipツール、クラウドサーバー接続など多機能です。有料オプションでrootedな設定も可能。
.nomediaや隠しフォルダを設定し、MediaScanの対象外にしてデフォルトのAndroidアプリからは見えないようにして、管理をこのアプリに集約させたりしてます。
ESファイルマネージャーが合わなかったので、同じような方こちらはいかがでしょう。


必ずインストールするnativeアプリ3つご紹介しました。
新しく見つけて、また紹介できたら良いな。

2020年4月22日水曜日

YouTube Liveの申請をしてみた

外に出れないのでゲームセンターにも行けず。
その前にゲームセンターやってすらいないんだけど。

ということなのでbeatmaniaIIDX INFINITASの環境を整えて、最近ちょこちょことプレーしています。
本当はDPがやりたいんだけど、コントローラーが足りないのでSPです。
ついでに配信もしたいなと思ったのでYouTube Liveの申請をしておきました。
近いうちに配信プレーのテストをしようと思います。
問題はマイクがちゃんと使えるかなんだけど・・・。

キャプチャーボードもPCについてるので、ドライバをインストールしなおせば、Switchも配信できる気がします。モニターがもう一枚欲しいです。Apple Pencil 2も欲しいです。
いろいろ欲しい物が多いな。

前倒しでMagic Keyboard 2も発売されたんですよね。
重いし高いし、すぐ買う気はないんですけど、あれも良いなぁと誘惑されています。

2020年4月18日土曜日

FLAG_ACTIVITY_NEW_TASKのAndroid 9での変更点

Android 10がリリースされてから半年くらい経ちましたかね。
ついにお菓子の名前すら付かなくなりました。毎回予想したり、どのお菓子になるのか楽しみではあったのですが。

実は2018年にPixel 3を購入してまして、すでにAndroid 10にアップデートしてあります。
それどころか、もうAndroid R Developer Previewが始まっておりまして、いやはやAndroidの動きはめちゃくちゃ早いです。

今回はAndroid 10ではなくAndroid 9(P)で「Android Developerに記載はあるけどあまり気づかれない」変更点があります。
それが「ServiceやBroadcastReceiverなど、画面を持たないComponentからのstartActivity()時、IntentにFLAG_ACTIVITY_NEW_TASKを付与しないと起動しなくなった」という点。
元々、これは本来は必要なフラグとして設計されていたようなのですが、ある時を境に一旦制限が無効化されました。
しかも、Android 7.0ではいかなるFlagも強制的に無効化されるバグがあるとか。
それが全てにおいて補正されました。結構ハマりがちです、
Logcatでも出力されるので、しっかりデバッグしてたら気づけるものではあるんですが、
理由を知らないと「なんで???」ってなるので、この記事がその根拠の一助になればと思います。

今度は、昨今のAndroidでよく目にするJobServiceあたりを取り上げてみようかな?

2020年4月15日水曜日

iPad Pro 2020 11inchを購入してみて

ずいぶん久しぶりのブログ更新。
今流行りのnoteにしようかと思ったりもしてるけど、頻繁には書かないので、とりあえずこのままやってみる。

iPad Pro 2020 11inchをdocomoで購入しました。
自分でApple製品を買うのはなかなかなく、第6世代iPod touch以来ですかね。
様々なところでiPad Proを買うべきか否か、みたいなのがあり、いつ買おうかと悩んでおりましたら、2020年モデルが出るということで、今回即決でした。
2018年モデルでも良いんじゃないの?とも思ったりしましたけど、結局新品でdocomoから買う予定だったので、値段も安くなっていることもあっての2020年モデルにしました。

買って数日は特にこれといった使い道もなく、以前借りていたiPad miniからアプリを移動して使う程度だったのですけど、先日友人からMagic Trackpad 2を安価で譲っていただいて、使ってみたらまぁ便利。
Android用ではあるんですけどBluetoothキーボードも持っているので、これと組み合わせたことで、ラップトップ環境が出来上がってしまいました。そんな状況でこれを書いています。

あるYouTuberさんの動画を見てMagic Trackpad 2は絶対欲しいなぁと思っていたので、友人にはとても感謝。使ってるキーボードが一癖あるので、慣れるのに少し時間はかかりそうですが、文章打つくらいなら普通にノートPC使ってるのと大差ないです。
MacBook Airも古い型を持ってるんですけど、普段使いはこれで十分です。

Magic Trackpad 2の使い心地がとても良いので、新型Magic Keyboardもちょっと欲しくなってます。ケースにもなるし。その前にApple Pencilかなとは思ってますが。

昨今の新型コロナウィルス流行の煽りを受けて、在宅勤務になっています。
こうやってブログを書くというのも、気晴らしになって良いかもしれません。

Androidアプリの技術面も少し記事にできたら良いな。