最近作ったアプリの話



先日、コナミ社の提供しているコナステのダウンロードコンテンツゲームを1クリックで起動できるアプリを作り、公開した。

Ks Game Launcher (Github)

作った理由として、インストール時に作成されたショートカットをクリックするとブラウザが起動し、ログインしていたらそこから起動ボタンを押して初めてクライアントのランチャーが立ち上がる……という起動方法がイマイチに感じたため。

また、過去に似たような理由(とサブ垢切り替えが面倒だったため)で作ったことがある拙生作 TSLoginManager と同等の仕組みで実装できると考えたため。また、久しぶりにクライアントアプリの開発言語を触りたかったから、というのもある。


今回は作ったときのメモとして、どんなことをやったか、どんな経緯だったかをこの記事に残してみる。メモなのでまとまっていない書き方になっている点はご容赦を。

1Passwordでヴォールトをアーカイブ(非表示)する

昔から1Passwordを使っていて、これまではスタンドアロンタイプの買い切りで利用してきました。

1Password 8からは完全にサブスクリプション型に移行してしまったのでサブスクリプションで利用しています。

サブスクリプション型ではこれまでと同じように管理できますが、基本的にクラウドベースの同期型で管理されます。

私は用途ごとにいくつかのヴォールトに分けて中身を管理しています。例えば、少しお手伝いしたプロジェクトなど。そういった中にはお手伝いが終了したプロジェクトもあるため、本来であればその時点で削除するのが好ましいのですが、状況により引き継ぎが完了していなかった情報があった場合、あとから確認されるケースもあります。

あるいは、個人的に過去に使っていたけど、現在は不要になった情報などもあると思います。

そういった削除したくないけど、普段は使わないため非表示にしておきたいヴォールトについて、ヴォールト単位でアーカイブする機能はないかなと思っていたのですが、そういったものはなさそうで、諦めていました。

が、改めて1Passwordをウェブから確認したところ、これを実現できそうなものがあり、実際できたのでメモしておきます。


👋Clubhouseについてまとめ(更新)

最近流行している新しいSNS、Clubhouse 。これまでのSNSと異なり、文字によるコミュニケーションではなく、音声でのコミュニケーションがメインのSNS。



テキスト主体のSNSがTwitter、画像主体のSNSがInstagram、あるいはPinterestだとして、Clubhouseは音声、会話でのSNSとなっている。SNSなので、その時に話したい人同士で好きに聞いて、話してとすることができる。

ありがたいことに、国内ではやり始め直後に招待してもらうことができ、それを試すことができたので、この新興SNSについて、(既に書かれていること、分かっていることも多いが)分かったこと仕様などをメモとしてここに書く。


日本では2021年1月25日頃から流行りだした。このタイミングで、このアプリの登録時に必要な電話番号で国番号+81(日本の国番号)が追加されたとのこと。

実はサービス自体は既に昨年の夏(2020年7月)頃から、そしてベータ版は2020年月頃から北米西海岸を中心に始まっていた模様。このタイミングは、各アカウントにある招待してくれた人(Nominated by)を辿っていき、開発者(@rohan、またはアプリアイコンにもなっている@iambomanix)に辿り着くことで分かる。




日本でも既に多くの人が招待を受けているようで、マスメディア、芸能関係、政治関係者、その他インフルエンサーなどでも早い段階から入ってきている人も多い。このあたりはそれぞれの業界関係者のTwitterへの参入時のときから比較すると、かなりリーチが早く、正直驚いている(これまでのSNSの傾向的に、この手のアーリーアダプターはテック系メディア関係者やITエンジニアなんか界隈で賑わうことが多い印象が個人的にあった)




AppEngineでcomposerが更新されないとき

Google AppEngine

 最近になってようやくGoogle AppEngine (以下GAE)を使いだし、自サイトをその上で動かせるよう試行錯誤しています。

前置き

私の主サイトは古くからPHPで動かしていて(初期の頃はLegacy ASPで動かしていたこともありました)、GAEでPHPがサポートされてからいつか移植して動かしてみたい。と思っていたのですが、ベースとしていたフレームワークが古く、composerも使用していない状態のものだったため、最近になり、重い腰を上げてLaravelに置き換えるまでなかなか移植できずにいました。

GAEで開発していると、自分で好き勝手にモジュールをインストールして動かしていた環境と異なり、ある程度の制約を受けつつその中で作るようになります。幸いにも既存機能については代替の外部APIなどに置き換える事でほとんど移植可能になりそうとなりました。

minikubeでGoogle Container Registry (gcr)からイメージを取得する

最近は今ごろになってKubernetesの勉強をしています。
概念は大まかに理解した。つもり。けど全然分からん。

Zennで書いた記事のミラー。なので、以下同じ内容。

前置き

現在Google Cloudの無料期間を利用しつつ色々試しているのですが、Google Container Registry(gcr.io)にホストしたコンテナイメージをminikubeで構築しているローカルの環境から取得する際に、プライベートリポジトリだと認証処理が必要になります。

Kubernetesでもこのあたりはもちろん考慮されていて、Dockerレジストリで使用されるログイン認証に準拠した仕組みが準備されています。

が、如何せんうまく認証されない。普通にリポジトリパスを指定しても、PullImageErrorとなってしまう。

エラーログを見ると、認証方法を確認しろ(意訳)というメッセージとともに GCRでの認証方法を案内するページ へのリンクが出ているので確認し、手順に則って見るも、うまくできない🤔

フリーWi-Fiに接続したらサイトに接続できない場合の話


 スマートフォンが普及してからだいぶ経ち、国外からの旅行者向け、観光誘致も込めてまちなかで使用できるフリーWi-Fiもだいぶ普及が進んできました。

おかげで飲食店などに入り、その店内でWi-Fi経由で調べ物をしたりするのにはとても便利だったりします。

しかし、フリーWi-Fiに接続した途端にサイトに接続できなくなることありますよね。あれ鬱陶しいですね。

これは少し仕方がない部分があって、これもまた最近広まっている、常時HTTPS通信によるものが影響してます。

何故繋がらなくなるのか

HTTPSの通信によって通信の内容は暗号化されています。その内容は利用者以外からは読み取れません。また、その通信内容を改ざんすることもできません。

フリーWi-Fiで繋がらなくなるのはこの通信に介入(実質的には一部改竄)し、Wi-Fiの事前認証情報にログインしていない場合はログイン画面に移動させようとします。
また認証されていない場合、ログイン画面と、一部の許可されたサイト(例えば店舗のウェブサイトなど)以外は通信を制限するようにしています。

この機能はフリーWi-Fiのルーターの機能によるもので、これをキャプティブポータル(Captive Portal)といいます。

そのためログイン画面に遷移させることもできず、外部のサイトへの接続も制限された結果、フリーWi-Fiにつないだ途端にウェブサイトにつながらない。という状態が発生します。

データ通信用eSIMの契約と設定 (Pixel 4編)

eSIMの契約と設定 (Pixel 4編)
eSIMの契約と設定 (Pixel 4編)
先日Googleのイベントで発表、その後発売されたPixel 4を購入しました。
Pixel 4 (Oh So Orange)のパッケージ

PixelシリーズでもPixel3からeSIMに対応しましたが、国内版ではFeliCaが使用可能な代わりにそれが有効化されず、eSIMが使えるのは北米版でした。Pixel 4では国内版でもeSIMが使えるようになり、FeliCaも引き続き利用できるようになりました。

日本ではしばらくeSIMを提供するキャリアは存在しませんでしたが、2019年7月18日から、IIJ mioでeSIM契約の提供が開始されました。
現在はデータ通信専用、かつベータ版ということで、eSIM側で音声通話はできないですが、主回線とデータ通信線用回線でプランを使い分けすることが可能になります。

IIJ mioでは、10月31日までのキャンペーンで、初期費用3000円が0円、月額1,520円(税抜)/6GBが3ヶ月間1,000円引きの520円となるキャンペーンが開催されているため契約してみました。(10月28日までに繰り上げ、10月29日現在終了済み)

iPhone版はこちら

最近作ったアプリの話

先日、コナミ社の提供している コナステ のダウンロードコンテンツゲームを1クリックで起動できるアプリを作り、公開した。 Ks Game Launcher  ( Github ) 作った理由として、インストール時に作成されたショートカットをクリックするとブラウザが起動し、ログインし...