- 1. 日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ5/9)
- 2. enableEdgeToEdgeを使ってテーマ切り替え時にステータスバーにも適切な色が反映されるようにする
- 3. Preview版のAndroidStudioをいち早くDLする
- 4. Requiring unknown module “134”の治し方
- 5. 【Flutter】QiitaAPIとOAuth2.0を使ってのログイン画面を作成する
- 6. ZXingをJetpack Composeで利用する
- 7. Google Pixel3aにUbuntu Touchをインストールする
- 8. Jetpack ComposeでfontSize設定はどうするのが良いのか
- 9. Next.js Learnのアプリをデスクトップアプリ化とスマホアプリ化してみた
- 10. ViewPager2のrequestDisallowInterceptTouchEventを実行してもViewPager2には効果がない件
- 11. 脱初心者を目指す!Android Studioの便利な機能やショートカットまとめ
- 12. メモ:バルミューダフォンのデフォアプリ無効化
- 13. 日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ4/9)
- 14. 【Jetpack Compose】状態管理のためにremember、rememberSaveableの違いとSaverの活用
- 15. AndroidタブレットにTermuxを導入する
- 16. 単体テストで、日付を扱う
- 17. Android端末でOpen Interpreterを使用する方法
- 18. 使用できない状態となった楽天ポイントを使用できる状態に修正した話
- 19. ずんだもん認知シャッフル睡眠アプリを作ろうと思ったら大変だった
- 20. 初心者でも簡単!AndroidのTermuxでSSH接続する方法
日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ5/9)
# はじめに
この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。
# 画面遷移(他のアクティビティの起動)
メイン画面から別の画面に遷移するためにはAndroidで言うアクティビティの起動を使うことになる。
Mindで言うところの「プログラム実行」/「子プロセス実行」、Cなら fork()+exec() の感覚だろうと思っていたのだが、実際にやってみると想像とはかなり異なる部分があり、原理を理解したり実装するのに時間がかかった。
![20130619_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/3
enableEdgeToEdgeを使ってテーマ切り替え時にステータスバーにも適切な色が反映されるようにする
## はじめに
ダークテーマに対応するにはどうしたら良いか調べていたところEdgeToEdge時にステータスバーの色が動的に反映されなかったのでどう実装したら良いかメモ。## 動的に切り替わらないコード
“`
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)enableEdgeToEdge()
setContent { … }
}
}
“`
| テーマ切り替え前 | テーマ切り替え後 |
|:-:|:-:|
| ![Screenshot_20240323_232855.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130827/380ed014-72ac-732d-16f2-7be50a408915.png) |
Preview版のAndroidStudioをいち早くDLする
これもしかしたら常識なのかもしれないのですが..個人的に少しハマったので書いておきます。
今朝Canary版のKoalaが出たのでウキウキでPreview版のDLページに行ったのですが、
New Android Studio releases!
🪼 Jellyfish/AGP-8.4 Beta 1
🐨 Koala Canary 2Read the release notes ↓https://t.co/X7JlYrBZej
— Android Studio (@androidstudio) March 22, 2024
DLページに行くとなぜかKoalaが出てこない
![スクリーンショット 2024-03-23 23.24.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145704/680d1a3d-98fe-b26f-74c5-04bf410e200a.png)結果的に言語設定を英語にすると出てきました
![スクリーンショット 2024-03-23 23.27.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145704/1424843a-e11e-2b45-6b7b-89017420b05d.png)
何
Requiring unknown module “134”の治し方
リアクトネイティブで発生した
下記エラーの治し方Requiring unknown module “134”. If you are sure the module exists, try restarting Metro. You may also want to run yarn’ or “npm install”.
Requiring unknown module “134”. If you are sure also want to run yaty or arin eti. You may Error: Requiring unknown module “134”. If you are
sure the module exists, try restarting metro. tou may also want to run “yam” or “npm install’. at unknownModuleError (http:/10.0.2.2:8081 /index.bundle/&platform=android&dev=true& minity=falseBap
【Flutter】QiitaAPIとOAuth2.0を使ってのログイン画面を作成する
## はじめに
みなさんこんにちわ、Flutter学習約2ヶ月の駆け出しエンジニアの*はるさん*です。
ログイン周りの実装を行う際にFirebaseAuthを使うとものすごく簡単に実装できますよね。
しかし企業や案件の全てがFirebaseを使っているわけではありません。
そこで今回はhttps通信を使ってQiitaAPIにアクセスし、OAuth2.0の仕組みを利用してログイン処理の実装を行う方法を書いていきたいと思います。### 記事の対象者
– OAuth2.0での認証と認可を実装したい方
– https通信でAPIを呼び出す実装方法を学びたい方
– ある程度のアプリ開発経験(iOS,Android,Flutterなど)がある方
– flutterで小さなプロジェクトをいくつか作った経験のある方### 記事を執筆時点での筆者の環境
– macOS 14.3.1
– Xcode 15.2
– Swift 5.9
– iPhone11 pro ⇒ iOS 17.2.1
– Flutter 3.19.0
– Dart 3.3.0
– Pixel 7a ⇒ Android
ZXingをJetpack Composeで利用する
AndroidのXMLレイアウトをJetpack Composeに移行していて、QRコードリーダーのライブラリである`zxing-android-embedded`を使っている部分を移行することがありました。
しかしJetpack Composeで使っている情報が少なかったので備忘として簡単に残しておきます。
# 実装
“`Zxing.kt
@Composable
fun AdminClubMembershipScanScreen(navController: NavHostController) {
val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.currentval compoundBarcodeView = remember {
CompoundBarcodeView(context).apply {
val capture = CaptureManager(context as Activity, this
Google Pixel3aにUbuntu Touchをインストールする
## はじめに
Google Pixel3aにUbuntu Touchをインストールする手順をまとめました。
スマホでUbuntuを使用できるようになります。![GHgM-WeaQAAVCCL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930094/8a0d62c3-ec37-6f18-3951-68f696ac5ac2.jpeg)
:::note warn
この記事での操作は様々なリスクを伴いますので、自己責任で実施してください。
・スマホ内のデータは初期化されます。
・OSのダウングレードを伴いますので、セキュリティが脆弱になる可能性があります。
・最悪の場合、スマホが文鎮化する可能性があります。
:::## 実行環境
**PC**
Windows 10 pro**スマホ**
Google Pixel3a
Android version 12.1.0## 手順
[ubuntu touchの公式サイト](https://devices.ubuntu-touch.io/inst
Jetpack ComposeでfontSize設定はどうするのが良いのか
Jetpack Composeでフォントサイズを設定するときに、どう書くのがベストなのか分からなかったので調べてみました。
[こちらのStack Overflow](https://stackoverflow.com/questions/67522145/text-composable-dimensionresource-not-working-as-fontsize-parameter)で議論されていましたが、書き方によってスケーリング、つまりOSのフォントサイズを変更した際の挙動に違いがあるみたいです。
ただいまいち結論がわからなかったので自分でも調べてみました。# 先に(多分)ベストプラクティス
上記StackOverflowでも言われていますが、テーマを設定できる場合はそちらを使った方が良いです。
Material Design3は不勉強なのですが、以下のようにTypographyクラスを使っておくとアプリのデザインの統一感に繋がるのでこれが一番良いと思います。
“`Type.kt
val typography = Typography(
headlineSmall
Next.js Learnのアプリをデスクトップアプリ化とスマホアプリ化してみた
# Next.js Learnってなに❓
Googleさんの試験運用中生成AIの解説がわかりやすかったので、拝借🙏>ReactをベースにしたフレームワークであるNext.jsの諸知識や思想を学ぶことができる無料のチュートリアルです。
このチュートリアルでは、請求書を管理するダッシュボードを作成しながら、Next.jsの基礎を学ぶことができます。
認証機能やDB連携、PaaS(Vercel)の活用など、実践的な内容も含まれています。
JavaScriptではなくTypeScriptを使用します。
また、チャプターの途中には、それまでの説明が理解できているかをチェックする簡単な択一式のクイズが用意されています。公式のページはこちら👇
[Learn Next.js | Next.js by Vercel – The React Framework](https://nextjs.org/learn)## 💻 試した環境と該当リポジトリ
[利用したリポジトリ](https://github.com/TakaraShinya/nextjs-dashboard)“`
Apple
ViewPager2のrequestDisallowInterceptTouchEventを実行してもViewPager2には効果がない件
AndroidのViewにおいて、タッチイベントは子の方が優先的に処理できますが、親Viewは子Viewが`onTouchEvent`を処理している中、`onInterceptTouchEvent`が呼び出されており、trueを返すことで処理を奪うことができます。
例えば横スクロールのViewAの上に、縦スクロールのViewBを配置するという画面構成の場合、ViewAは`onInterceptTouchEvent`で操作を監視し、操作方向が横方向であると判定すると、ViewBから操作の優先権を奪うことで、縦横両方の操作が両立できるという仕組みになっています。概ねこれでうまくいくのですが、場合によっては親View側で処理を奪ってほしくない場合があります。その場合に使うのが、`requestDisallowInterceptTouchEvent(true)`です。
名前の通り、このメソッドがコールされたView(およびその親のView)はInterceptしなくなり、子はタッチイベントの優先権を奪われなくなります。例えば、チョット複雑なレイアウトを作るとします
– 横スクロールの
脱初心者を目指す!Android Studioの便利な機能やショートカットまとめ
## はじめに
こんにちは。
去年の秋までクロスプラットフォームなアプリ開発を行っており、その後ネイティブ言語(SwiftやKotlin)によるアプリ開発を担当するようになりました。
ネイティブ言語でのアプリ開発を始めて約半年、色々なことをキャッチアップしましたが、その中でとくに役立ったのはIDEの便利な機能やショートカットでした。そこで、今回はAndroid Studioにしぼって、この半年間でよく使ったもの、自分で調べて便利だなと思ったもの、さらにはモブプロやペアプロした中で他のエンジニアから見聞きしたものを記事にまとめます!
Android Studioを使っている人はもちろん、これから使おうとしている人にも役立てば幸いです。## この記事の対象者
– Android Studioでのアプリ開発を始めたての人[^1]
– Androidアプリ開発をするにあたって最低限の便利な機能やショートカットを知りたい人[^1]: Android Studioが使ったことあれば問題ありません!さらに[Android Studio UI](https://developer.an
メモ:バルミューダフォンのデフォアプリ無効化
アプリ(ただのショートカットっぽいのでおそらく不要)
パッケージ名:
com.balmuda.phone.blmb.shortcut
com.balmuda.phone.blmbrecipe.shortcut
com.balmuda.phone.blmbtech.shortcut
標準ではできないので、パソコンとつなぎadbコマンドを有効にして(要ググる)無効化する。
日本語プログラミング言語MindをAndroidに移植した時の記録(ステップ4/9)
# はじめに
この記事はだいぶ前(2012年)にココログの「[キリーの日本語プログラミング](http://uemon3511.cocolog-nifty.com/nihongoprogram/)」に掲載したコラムですが、再編集してこちらにも投稿します。今となっては古い話ではありますが、OSによってプログラム言語(AndroidではJava)が決め打ちされている環境で規定と異なるもの(Mind)を走らせたことの記録としてお読みください。
# イベントリスナー
レイアウトの場合と似た話だが、Java側のオブジェクトをMind側に伝えても意味が無いので簡単な仕組みで両者間で連絡が取れるようにする。
![20130603eventlistnersample_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118036/7de8b7d5-38e3-e618-f178-1e78d619672e.png)
## クリックイベントリスナーの登録
まずクリックリスナーの登録は以下のように行う。
【Jetpack Compose】状態管理のためにremember、rememberSaveableの違いとSaverの活用
Jetpack Composeにおける`remember`、`rememberSaveable`、そして`Saver`の使用と、それらが状態管理にどのように役立つのかについて詳細に解説します。
### `remember`とは?
– **目的**: Composable関数内で状態を保持するために使用されます。
– **特徴**: `remember`はコンポジションが破棄されるまで(例えば、Composable関数がナビゲーションによって画面から削除される、アクティビティが破棄されるなど)その状態を保持します。
– **限界**: アクティビティの再作成(デバイスの回転やバックグラウンドからの復帰など)では状態が保持されません。再作成時には初期化コードに戻ります。
### `rememberSaveable`とは?
– **目的**: `remember`と同様に状態を保持しますが、アクティビティの再作成を越えて状態を保持することができます。
– **特徴**: `rememberSaveable`は、システムによる再作成(デバイスの回転など)後も状態を復元するために内
AndroidタブレットにTermuxを導入する
# 首記の件は、多くの可能性を秘めています。
この小さなアプリケーションは、デバイスを機能するLinux環境に変えることができます。例えば、
– Calcurseを使用すれば、予定管理が簡単になります。
– Todo.txtは、日々のタスクを整理し、
– Gitはプロジェクトのバージョン管理を助けます。
– Rcloneはクラウドストレージへのアクセスを提供し、
– Yt-dlpはお気に入りの動画をダウンロードするためのツール。
– Node.jsやHonkitは、静的サイトを作成する際に役立ちます。## Termuxはさまざまなパッケージや…
カスタマイズオプションを提供しています。
### あなたがプログラマーであれば、
– Pythonや
– Rubyなどの言語をインストールしてコーディングすることができますし、
### システム管理者であれば…
– SSHや
– Mosquitto(MQTTブローカー)などのツールを利用してリモートで作業することも可能です。
## TL;DR
Termuxを使用することで、これらすべてのツールが手のひらの
単体テストで、日付を扱う
日付を扱った単体テストを実施することがあったので、その際にモック化したり色々問題があったので、まとめてみました。
Hiltでの単体テストに関しては、こちらの記事を[参考](https://qiita.com/shimizu-you/items/ad8ad91b9b27c227d2a5)してください。### Mockkを導入
“`kotlin
testImplementation(“io.mockk:mockk:1.13.9”)
“`### 日付ライブラリーの導入
日付関連のライブラリーとして、Androidに最適化された[threetenbp](https://github.com/ThreeTen/threetenbp)を使用します。
ただし、単体テストをする際に注意点があります。
単体テストでは、threetenabpが使えないため、除外してthreetenbpを使用する必要があります。“`kotlin
implementation(“com.jakewharton.threetenabp:threetenabp:1.4.6”)
testImplementa
Android端末でOpen Interpreterを使用する方法
Android端末で高性能なAIアシスタントを使いたいと思ったことはありませんか?Open Interpreterを使えば、ChatGPTのようなAIとAndroid端末上で直接対話することができます。この記事では、Android端末へのOpen Interpreterのインストール方法を詳しく解説します。
—
こちらの記事もおすすめ
https://hamaruki.com/its-easy-even-for-beginners-how-to-connect-via-ssh-with-android-termux/
## Open Interpreterとは
Open InterpreterはオープンソースのAIアシスタントアプリケーションで、OpenAI APIを利用してユーザーとの対話を行います。PC版に加えて、Android版も開発されています。
Android版Open InterpreterはTermuxというターミナルエミュレータアプリ上で動作します。Termuxは追加の設定なしにAndroid端末上でLinux環境を提供するアプリで、Open Inter
使用できない状態となった楽天ポイントを使用できる状態に修正した話
事の経緯は、嫁のキャリアメールを普通のメールアドレスに切り替えようとしたことが始まりです。
最初にキャリアメール(仮に**AAA@com**とします)のアドレスに紐づけて楽天アカウントを作成していました。そして、このキャリアメールのアカウントをやめて例えばgmail(仮に**BBB@com**)のようなメールアドレスで楽天アカウントを作成しようとしました。
### 結論からすると楽天会員情報ページでメールアドレスをAAA@comからBBB@comに変更すれば良かったのです。
![タイトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/495919/282672d0-5af8-31ba-fc23-59c9eac546fc.jpeg)そうしないで、**BBB@com**として楽天アカウントを新規作成してしまい悲劇は起こりました。
嫁は、楽天カードを作成し入会ポイントをもらったのですが、**BBB@com**には入会ポイントは入らず**AAA@com**に入会ポイントが付与されたのです。それ
ずんだもん認知シャッフル睡眠アプリを作ろうと思ったら大変だった
ずんたもんが読み上げる認知シャッフル睡眠の動画をよく聴くので、voicevoxで単語を読み上げるアプリを作ってみようと挑戦しましたが、アプリ初心者なので各種ポイントでつまずいてしまい思ったより大変でした。
はまったポイントを記録したいと思います。順不同です。## これをやったら動いた
### voicevox_coreのAARファイルをアプリのプロジェクトのdependencyに追加する
aarがビルドされているのはプレビュー版のみのようです。
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.15.0-preview.16 (2024/02現在最新のプレビュー版ビルド)
から `model-0.15.0-preview.16.zip` をDL・解凍し、
https://developer.android.com/studio/projects/android-library#psd-add-aar-jar-dependency
こちらの手順通りにaarファイルをdependencyに追加する
つまずきの8割がcore
初心者でも簡単!AndroidのTermuxでSSH接続する方法
こんにちは!今回は、AndroidのTermuxアプリを使ってSSH接続する方法を初心者向けに詳しく解説していきます。Termuxを使えば、Androidスマホやタブレットからリモートのサーバーに接続できるようになります。
—
こちらの記事もおすすめ
https://hamaruki.com/how-to-use-apollonstreamapi-to-stream-android-screen-capture-in-real-time/
https://hamaruki.com/create-a-gemini-app-with-android-studio-and-check-its-operation-on-the-actual-device/
## Androidにアプリのインストール
### Termuxアプリのインストール
まずは、Android端末にTermuxアプリをインストールしましょう。GooglePlayストアから入手できるバージョンは古いので、以下のリンクから最新版をダウンロードしてください。
https://github.com/termux