2021/02/19・お知らせ
皆さん、こんにちは。
私が以前から開発している、スマホ決済アプリランチャー「PayLauncher」について、店舗検索機能の仕様を変更させて頂くことになりました。
経緯
先日、GoogleよりGoogle Playでのバックグラウンド位置情報の権限に関するポリシー変更が発表されました。
本アプリでは、ユーザーが元々起動していたアプリの操作を阻害しないよう、オーバーレイで店舗検索ダイアログを表示する仕様としています。これは内部的にはバックグラウンド扱いとなるため、以前まではバックグラウンド位置情報権限を要求していました。
しかし、ポリシー変更により、バックグラウンドで位置情報にアクセスするためにはGoogleによる審査が必要になりました。それに本アプリは落ちてしまったわけです。おそらく、「バックグラウンド位置情報権限を使わなくとも実装できる方法があるはずだ」という意味だと思われます。
仕様変更内容
このような経緯により、以下のように仕様を変更します。
チケットシステム(リワード型広告)は廃止し、アプリ起動時のバナー広告のみとなります。
店舗検索を開始すると同時に、アプリ本体が起動するようになります。
店舗検索時にアプリ本体を起動すれば位置情報にはアクセスできるため、バックグラウンド位置情報権限がなくとも店舗検索機能が利用できます。
店舗検索のたびにアプリ本体が起動するため、リワード広告も不要であると判断しました。
ご不便をおかけしますが、ご了承ください。
以上
2020/04/16・動画ウラ話
/i/https://www.youtube.com/embed/jX9opDgsvVQ
ウラ話
作っちゃいましたねぇ
実は私、Androidアプリ開発をやっています。以前から作っていた「提出物マネージャー」もそろそろネタ切れ気味になってきて、なにか新作アプリにいいのはないかなぁと考えているとき、どこかの店でふと「今いる店舗で使えるPayがすぐにわかるようなアプリがあればいいのに」と思いました。しかも、それより前にこんなアプリを見つけていました。
https://play.google.com/store/apps/details?id=com.masaibar.payholder&hl=ja
PayHolderというアプリなんですが、スマホ決済アプリを通知欄から一発で起動できるようにするアプリです。私のアプリは、このアプリに+αして、主に2つの機能を追加しました。
それが、店舗検索機能とシーケンシャルアクション機能です。ローソンなどで、ポイントカードにスマホ決済アプリに、アプリ間移動が面倒に思ったことはないですか?少なくとも私はありますが、そこで思いついたのがこの機能です。
詳しくは動画を見てくださいなんですが、要するにボタン一つでアプリが移動できる機能です。
またですね、店舗検索機能にお金がかかると動画で言ったと思いますが、最初の数万回は無料らしい。。。まあ、開発費(笑)ということで。PC代以外1円もかかっていませんが。
2020/01/03・Androidアプリ
Androidプログラミングコラム第2回です。多分
今回は、Androidでユーザーに処理を待ってもらうために出すProgressDialogについて取上げます。
ProgressDialogについて
ProgressDialogは、結構前から非推奨(Deprecated)となっています。にも関わらず、私も含め多くのアプリでこのProgressDialogを見かけます。おそらく、実装が楽なんでしょうね。何も考えず表示すればいいだけなので。
通常、Deprecatedになるものといえば、代替の仕組みやメソッド、定数などが出来たり、サポート外になったものなどですよね。しかし、ProgressDialogがDeprecatedとなっている理由は少し変わっています。
ProgressDialogがDeprecatedとなっている理由
っていうか、非推奨である理由は明記するための仕組み(Javadoc)がちゃんとあるので、普通に見ることができます。
そこには、こういう記載が。
ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like [ProgressBar](https://developer.android.com/reference/android/widget/ProgressBar.html), which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress.
(訳:ProgressDialogはモーダルダイアログであり、ユーザーのアプリ操作を妨げます。このクラスを使うのではなく、ProgressBarのようなUIに埋め込めるプログレスインジケータを使用するべきです。あるいは、タスクの進行状況を知らせるためにNotificationを使うこともできます。)
https://developer.android.com/reference/android/app/ProgressDialog
要するに、ProgressDialogが表示されている間はユーザーが何も出来なくなり、UXが低下するということです。あなたも、「間違えてタップしちゃったけどProgressDialogが邪魔で読み込み終わるまで前の画面に戻れない」なんて経験があるでしょう。そういうことを引き起こすので、GoogleとしてはなるべくProgressDialogは使わせたくないようです。
つまりは、ProgressDialogの代替を自力で作らなければならない訳ではなく、ProgressDialogの概念自体が非推奨ということです。
そこを少し勘違いした投稿を見つけたので記事を書きました。ProgressDialogを表示させるのはユーザーに操作をさせたくない時だけにしましょう。進行状況を表示したい際も、少し面倒でもProgressBarをUIに直接埋め込むようにしましょう。
2020/05/14・どうでもいいこと
今回は、PC版「プリンセスコネクト!Re:Dive」をフルスクリーンでプレイする方法を解説します。何故かゲーム内にその機能がない謎仕様ですが、レジストリをいじるとフルスクリーンにできます。
簡単な方法
バッチファイルを作りましたので、ダウンロードした後ダブルクリックして実行してください。
実行後、「1」と入力してEnterを押すとフルスクリーンに、「3」と入力してEnterを押すとウィンドウに戻ります。
:::btn
ダウンロード
:::
※以下のように表示された場合、「詳細情報」をクリックし、「実行」をクリックしてください。
確実な方法
WindowsキーとRキーを同時に押し、表示された「ファイル名を指定して実行」に「regedit」と入力しEnterを押します。
そして、
HKEY_CURRENT_USER\SOFTWARE\Cygames\PrincessConnectReDive
上の文字列を画像の部分に張り付けてEnter。
そして、その下に出てきた一覧から
Screenmanager Fullscreen mode_h3630240806
を探し、ダブルクリックして、値を「1」にする。
次に、
Screenmanager Resolution Height_h2627697771 ←縦ピクセル数(例:1080)
Screenmanager Resolution Width_h182942802 ←横ピクセル数(例:1920)
これらのレジストリをそれぞれダブルクリックして、「表記」を「10進数」にし、値を利用しているディスプレイの値にします。調べたい場合は、「設定」→「システム」→「ディスプレイ」→「ディスプレイの解像度」の設定値から確認してください。(横ピクセル数 x 縦ピクセル数、という表記です。)
これで完了。
※「表記」を「10進数」にし忘れると、大変なことになる(かもしれない)のでご注意ください。
フルスクリーンにすると「×」が消えますが、ゲームを終了するには、Alt + F4 を押します。
これくらいゲームソフトとしてゲーム内に実装してほしいですね・・・
2020/12/08・お知らせ
皆さん、こんにちは。
提出物マネージャーの現状
さて、私が細々と作るAndroidアプリの中に「提出物マネージャー」があるのですが、Playストアの詳細を見てもらえばわかる通り全然伸びてません。
伸びない事の何が一番辛いって、フィードバックが帰ってこないことです。フィードバックが帰ってこないと何処へ走ればいいのか分からない。底辺アプリ開発者が1番悩むところです。しょうがないので、独断と偏見だけでアプリに新機能を追加したりしているわけです。
伸びていない原因を個人的に分析して出した答えの1つ、それはiOS版を提供していないこと。実は、iOS版の提供にはかなり金が掛かるので渋っていました。(というか所持金が足りない) App Storeのへの掲載だけで年間1万3千円近く取られる上、10万もするMacがないと開発自体できません。
しかし、その分敵は少なく、アプリが広まりやすいです。また、ターゲット層やアプリの内容的に見ても、Android持ってる学生なんて変態以外の何物でもないので、iOS版を提供しないとお話にならないわけです。普通に考えて。
つまり何が言いたいか
しかし、直接iOS版をゼロから作っていてはSwiftやらまた学習し直す必要もあるし、Android版とiOS版の両方を別々で開発して維持しなければならず、かなり面倒。
そこで私、決めました。
_クロスプラットフォーム* なフレームワーク* でAndroid版諸共ゼロから作り直_します。
*「クロスプラットフォーム」とは、読んで字のごとくプラットフォーム(OS)を問わず一つのコードで動作するプログラムのことで、 *「フレームワーク」は「枠組み」と訳せますが、開発の手法だと思ってください。
つまり、1回プログラミングするだけでAndroidとiOS両方で動作する手法に切り替えるという訳です。今まで作っていたAndroid版のソースコードを直接iOSで動かす方法はないはずなので、Android版も同時に作り直すことになります。
という訳で、現在鋭意制作中でございます。2021年5月頃にはAndroid版はリリースできるかと思います。それまで今暫くお待ちください。
iOS版のリリースについては、先が全く見えない状況です。なにせ大量の資本が必要ですから。つきましては、安定した資金源を確保できてからのリリースとなります。ご了承ください。とりあえず適当に期限を決めておくと、2021年7月までには出せるように努力します。
今までご利用いただいていた方へ。以前とアプリの構造が全く異なるため、UIにやや大きな変化がありますが、できるだけそれが少なくなるように再現して制作しています。
アップデートに係る注意事項
このアプリは、以前のアプリのアップデートではなく新規アプリとして配信する予定です。また、ファイルでのバックアップ機能は実装しない予定ですので、以前までゲストモードでアプリを利用していた場合、データを引き継ぐにはアカウント作成が必要になります。方法など詳細は後日お知らせします。
2020/04/20・お知らせ
皆さん、こんにちは。
今回は、私が初公開するソフトウェア「Dropon」について解説します。
Droponは、シンプルさに重点を置いて作られており、できることはスマホ同士でのファイル転送、PCとスマホ間でのファイル・URL転送となっています。
今までAndroidだと、目の前の他人にファイルを転送する手段で迷っていたと思いますが、このアプリを使えば高速に、かんたんに転送ができます。また、パッとPCにURLを送りたいときなどにも活躍します。
ぜひ使ってみてください!
ダウンロード
紹介ページ
2021/04/20・どうでもいいこと
タイトルのとおりです。DMM版(Windows版)ウマ娘プリティーダービーでは、デフォルトだとティアリング(画面に動きがあるときに見られるガタガタ・ガクガク)がかなり酷いです。それを軽減する方法を解説します。
今回の方法での要件
NVIDIA製のGPUを搭載したPCであること
NVIDIAドライバーをインストール済みであること
方法
①NVIDIAコントロールパネルを開く
デスクトップを右クリックし、「NVIDIA コントロールパネル」をクリック
②「3D設定の管理」をクリック
③「プログラム設定」タブ→「追加」をクリック
④「umamusume.exe」を選択し、「選択したプログラムを追加する」をクリック
⑤「垂直同期」を「オン」に設定する
⑥「適用」をクリックし、ウマ娘起動中の場合は再起動する
比較動画 (夜間モードがオンになっているため黄色っぽいですがご容赦ください)
/i/https://www.youtube.com/embed/1uHQm1_gOug
簡単な解説
ティアリングというのは、モニターのリフレッシュレート(垂直走査周波数)と内部的なフレームの更新のタイミングがズレた場合に発生します。一般的なモニターは上から下までを1/60秒かけて書き換えます。その間に2フレーム以上がGPUで描画されると書き換えの途中で映像が切り替わってしまい、上の動画のようなガタガタが発生します。
垂直同期というのは、モニターの書き換えとGPUでのフレーム描画数をあわせる機能です。これはデフォルトではソフト側の設定に依存しますが、ウマ娘には垂直同期のオプションが存在しないため、恐らく開発者側で適切に設定がされていないのでしょう。
2019/05/01・Minecraft
みなさん、こんにちは。最近かなり花粉が酷い。花粉症の私はボックスティッシュ200枚が1週間でなくなります。
さて、最近WordPressにブログを移行したので、いろいろな記事をこれから移行していこうと思います。
2020/10/12編集: 画像を最新バージョンのものに更新しました。
解説
今回はタイトルにもあるとおりゲームディレクトリの設定方法を解説していきます。設定するとどうなるのか、図で解説します。
いろいろ詰め込みすぎた結果。
未設定時はワールドデータがいろいろなバージョンで混在していることがあります。それだと誤って違うバージョンで開いてしまった際にワールドが破損する可能性があります。しかし、ゲームディレクトリを設定することでワールドデータが完全に分離され、違うバージョンで開けなくなります。
それだけではありません。ゲームディレクトリを使わないと、今入っている物と違うバージョンのMODで遊びたくなった際に、わざわざMODを入れ替えなければなりませんが、ゲームディレクトリを設定することで、ランチャー側で切り替えるだけでそれぞれのMODが遊べるようになります!
これですね。DQMの導入でも見たと思いますが、「プレイ」の右の三角形をクリックすると登録したプロファイルが表示されます。そこから遊びたい物を選択して「プレイ」を押せば遊べます。
設定方法
それでは、設定方法を解説していきます。ちょっと面倒ですが、やっておいて損はないと思います。
まず、ゲームディレクトリをまとめるフォルダーが必要です。まあどこでもいいですが、私はマイドキュメントに作りました。フォルダー名も任意です。「mcgamedir」など。
続いて、その中にバージョンごとにフォルダーを作ります。例えば、1.7.10でBuildCraftがしたい場合は、「1.7.10bc」など。ちなみに、MODが入っていないバニラでもゲームディレクトリは設定しておくことをおすすめします。
今はこんな感じ
続いて、マイクラのランチャーを立ち上げます。
バニラの場合
バニラのMinecraftのゲームディレクトリを設定する方法です。ランチャーを立ち上げ、「起動オプション」から「新規作成」
①ランチャーを立ち上げ、「起動構成」から「新規作成」
②「名前」:そのバージョンである旨、「バージョン」:登録したいバージョンを設定
③先ほど作ったフォルダーのアドレスバーを右クリックし、「パスのコピー」
④ランチャーに戻って「ゲームディレクトリ」に貼り付け
入力欄をクリックし、CtrlとVを同時に押すと貼り付けられます。
⑤作成
⑥「プレイ」タブに戻って今作ったプロファイルを選択し、プレイをクリック
そうすると作ったフォルダーにいろいろ生成されるので、セーブデータを移せば完了。(セーブデータの場所:%appdata%\.minecraft\saves)
Forgeの場合
Forgeを使ってMODで遊ぶ場合の方法です。
「バニラの場合」の2.の「バージョン」を「release x.x.x-forgex.x.x-x.x.x.x」(xにはバージョンが入ります)にして1~7の手順を踏む。※Forgeをインストールしていない場合はしてからランチャーを再起動してください。
Minecraftをいったん閉じ、作ったフォルダー内にあるmodsフォルダーにMODをぶち込む
savesフォルダーにセーブデータをぶち込む
ランチャーから「プレイ」
最後に
いかがでしたか?私は説明が下手クソなのでうまく伝わっていない部分もあるかもしれません。わからなければ遠慮なくTwitterのDMでご連絡ください。