Jetpack Compose vs SwiftUI

世界のデベロッパーたちが比較しています。

UI部分の統一化、どちらが奪取するのでしょうか。

We looked at how to build a simple app with both Jetpack Compose and SwiftUI. The approaches for using these frameworks is different as outlined above.

👉 Jetpack Compose vs SwiftUI - Coding with Mohit hatena-bookmark

If you think it is a good idea to use Compose for both Android and iOS, I’ll probably disagree with you. It is important to respect UI/UX guidelines of the platform and Compose can’t build an application like SwiftUI does.

👉 SwiftUI vs Jetpack Compose by an Android Engineer | by Gérard Paligot | Mar, 2022 | ProAndroidDev hatena-bookmark

You should definitely keep an eye on both frameworks!

👉 SwiftUI vs. Jetpack Compose | QuickBird Studios Blog hatena-bookmark

Kotlinに慣れ親しんでるのもあるかもしれませんが、個人的にはJetpack Composeが一番ストレスなく書くことができました。 Jetpack Composeは現在DesktopアプリやWebでも使え、今後活躍の幅が広がって欲しいなと思っています。

👉 Jetpack Compose, React, Flutter, SwiftUIを比較する - Blog - Mori Atsushi hatena-bookmark

まだ、どちらとも言えませんね。

注視しておく必要があるでしょう。


Firebase Authentication の キーデータ相互登録設定を忘れてハマるな

いまさら知ったのですが。

On October 31, 2018, we will no longer actively contribute to, or accept issues and pull requests on, the open sourced SDKs (iOS, Android, Unity) on GitHub. After this date we will also stop releasing the SDKs through Cocoapods, Carthage, and Bintray JCenter.

👉 Discontinuing support for Twitter Kit SDK hatena-bookmark

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

実装とは別に、各管理画面から発行されるキーなどのテキストを別のサービスの管理画面に登録することが必要になります。

忘れやすくて抜けやすくてハマりやすいので整理しておきます。

 

Twitter Consumer API Key / Secret Key

Twitter Developers で作成される 「Consumer API Key / Secret Key」 を Firebase Authentication と Android Studio 上でXMLリソースとして登録します。

Twitter Developers consumer api key secret key

Twitter Developers で作成される「Consumer API Key / Secret Key」は Firebase Authentication に登録します。

<string name="twitter_consumer_key" translatable="false">YOUR_CONSUMER_KEY</string>     <string name="twitter_consumer_secret" translatable="false">YOUR_CONSUMER_SECRET</string>
👉 Twitter Developers hatena-bookmark
👉 Firebase console hatena-bookmark
👉 firebaseui.xml - firebase/snippets-android hatena-bookmark

 

Firebase Authentication Callback URL

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Host Config で独自ドメインにしたほうが感じが良いです。

👉 Firebase Authで独自ドメインが使いたい hatena-bookmark

 

Google Play アプリリリースキー SHA-1 フィンガープリント

アプリをリリースに使われる公開鍵のSHA-1のフィンガープリントです。

リリース鍵は、開発者が作成したり、Google Play 側で変更時に作成されたりするので、実際のリリースに利用されてる鍵を認把握している Google Play Console で確認すると間違いないです。

Google Play Console で確認して Firebase プロジェクトの概要 に登録します。

[設定] - [アプリの完全性]

[プロジェクトの概要] - [設定(歯車マーク)]
Google Play Console で確認して Firebase Authentication に登録します。

👉 Play Console hatena-bookmark

 

Android Studio デバッグキー SHA-1 フィンガープリント

デバック時に使われる鍵のSHA-1フィンガープリントです。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase プロジェクトの概要 に登録すると、デバッグ時にも使えます。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

👉 【コピペ用】Android「Google アプリ署名」コマンドまとめ hatena-bookmark
👉 google maps - How to get the SHA-1 fingerprint certificate in Android Studio for debug mode? - Stack Overflow hatena-bookmark
👉 Gradle タスクリストが見えない件【Android Studio】 hatena-bookmark

 

まとめ


Twitter Developers 
Consumer API Key / Secret Key
→ Firebase Authentication
→ Android Studio XML


Firebase Authentication 
Callback URL
→ Twitter Developers


Google Play Console
Release Key Fingerprint SHA-1
→ Firebase Project


Android Studio
Debug Key Fingerprint SHA-1
→ Firebase Project

箇条書きではきっとどれかが抜けてしまいそうなので手書きでも書いておきます。

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

👉 Firebase Authentication  |  Firebase Documentation hatena-bookmark


GitHub Gist のコードをスクリプトから更新する方法

ブラウザ上で長文テキストを編集すること、

キモいですよね、クソです!

github gist edit browser

GitHub 公式のコマンドラインツールは便利です。
👉 cli/cli: GitHub’s official command line tool hatena-bookmark


$ gh gist -h
Work with GitHub gists.

USAGE
  gh gist <command> [flags]

CORE COMMANDS
  clone:       Clone a gist locally
  create:      Create a new gist
  delete:      Delete a gist
  edit:        Edit one of your gists
  list:        List your gists
  view:        View a gist

INHERITED FLAGS
  --help   Show help for command

ARGUMENTS
  A gist can be supplied as argument in either of the following formats:
  - by ID, e.g. 5b0e0062eb8e9654adad7bb1d81cc75f
  - by URL, e.g. "https://gist.github.com/OWNER/5b0e0062eb8e9654adad7bb1d81cc75f"

LEARN MORE
  Use 'gh <command> <subcommand> --help' for more information about a command.
  Read the manual at https://cli.github.com/manual

 

エディタを変える

このデフォルトのエディタ nano って誰が推してるんすかね。


$ gh gist edit f49d4d7a9963b77d00c89d1a3dbb6976

github gh gist edit nano

変えます、emacs に。


$ EDITOR=emacs gh gist edit f49d4d7a9963b77d00c89d1a3dbb6976

いいですね。

EDITOR=emacs gh gist edit

ということは、

「gh gist edit」 は、

シェル変数 EDITOR に反応するアプリケーションですね !

 

ファイルを上書き更新する

とはいえ、

いまどきはもろGUIなIDEで豊富な機能を使ってコードは書いていきます。

なので、

パソコン上のIDEで書いたコードを Gist に更新していきたいですよね !

「更新」とは同じIDの Gist の上書きのことを言っています。


$ EDITOR="cp ~/ide/path/to/script/new.js" \
 gh gist edit f49d4d7a9963b77d00c89d1a3dbb6976

想像できてましたか?

GitHub 公式アプリ内のシェル変数 EDITOR の処理を。


[ -z "$EDITOR" ] && EDITOR=nano
$EDITOR TEMP_FILE

通常、エディタの起動コマンドを入力する文字列に


cp src-file

をセットすることで


vi tmp-file


cp src-file tmp-file

となり実行されます。

👉 linux - How do I edit /etc/sudoers from a script? - Stack Overflow hatena-bookmark

実際、言語は Go で書かれていますが、処理の内容はそういうことです。

 

標準入力から更新する

こんなの公開されてる方がいます。


$ echo "edit a gist from output piped from another command" | \
 EDITOR="cp "<(cat -) gh gist edit {<gist ID> | <gist URL>} [flags]

👉 GitHub CLI の gist edit へパイプを接続し、gist を編集する hatena-bookmark

「プロセス置換 (Process Substitution)」を使って処理しています。

「コマンド出力をファイル化して、そのパスを返す。」という使えるやつ。


$ cat <(date)
Thu Jul 21 12:40:53 EEST 2011

$ echo <(date)
/proc/self/fd/11

👉 プロセス置換 (Process Substitution)について - 一から勉強させてください hatena-bookmark
👉 shell - Process substitution and pipe - Unix & Linux Stack Exchange hatena-bookmark

 

まとめ

この先人たちの作ったコマンドラインツールの素晴らしさよ。

「ノーコード」とか言うてるやつな。

👉 GitHub Gist に置いた Javascript をブックマークレットとして実行する hatena-bookmark