- 1. 1.前書き
- 1.0.1. Jetpack Compose × Google Maps SDKで地図上にカスタマイズしたマーカーを配置 & クラスタリング
- 1.0.2. MapBoxMapをAndroid、JAVAのみで使ってマーカーで詰まった話
- 1.0.3. 【Android】CoroutineExceptionHandlerのErrorもThrowしよう
- 1.0.4. 【未解決】突然、Google Play Console デベロッパーアカウントが停止され、アプリが全て削除された話
- 1.0.5. 【Android】Glanceでウィジェット開発〜状態管理編〜
- 1.0.6. VSCodeで.NET MAUIの開発環境構築
- 1.0.7. 【Android】Kotlin用の静的コード分析ツール「Konsist」を導入してみた
- 1.0.8. DreamServiceでエオルゼア時計スクリーンセーバーを作る
- 1.0.9. 【Android】RatingBar使ってみた【Kotlin】
- 1.0.10. FileStreamの正体🤔(UnityAndroidの場合)
- 1.0.11. Ningbo Chem plus New Material Tec. Co., Ltd
- 1.0.12. Flutter 個体識別IDの取得方法 iOS/Android
- 1.0.13. Compose Material3に3つあるNavigationDrawerの違い
- 1.0.14. CordovaでUDPブロードキャストを受信する
- 1.0.15. Android で日本語でも色々なウェイトのフォントを使いたい
- 1.0.16. jetpackComposeでPaLM APIを使うための環境構築
- 1.0.17. Android: adb の使い方
- 1.0.18. 【Android Studio】覚えておくべきショートカット(Mac)
- 1.0.19. スマホ不要で動く!ARグラス”INMO Air2″の開発者モードを有効化する
Flutterのcontextとは何者か。
目次
- 1.前書き
- 2.contexrtとは(概念)
- 3.contexrtとは(具象)
- 4.Elementの役割
- 5._parentの使い方
- 6.find~/dependOnInherited~の動き
- 7.まとめ
1.前書き
なぜ、この記事を書こうと思ったのか。
Flutterといえば、ios,android両方のアプリを開発できるフレームワークで
ある程度の知識があれば簡単なアプリなら作業量ほぼ半分で作れてしまう便利な代物です。
しかし、ある程度以上のものを作るとなると必ずと言っていいほど
【contextとは何か】
という壁
Jetpack Compose × Google Maps SDKで地図上にカスタマイズしたマーカーを配置 & クラスタリング
:::note info
この記事はSafie Engineers’ Blog! Advent Calendar 10日目の記事です。
:::
# はじめに
こんにちは。Safieでモバイルアプリの開発をしている@rui_qmaです。モバイル版Safie Viewerでは、位置情報を持つカメラを地図上で選択することができるマップビューアー機能の実装に取り組んでいます。
AndroidチームではJetpack Composeの導入を積極的に進めていることもあり、本機能についてはMaps SDK for Android を Jetpack Compose で実装できる [Maps Compose](https://developers.google.com/maps/documentation/android-sdk/maps-compose) ライブラリを利用して実装しています。今回はMaps Composeの導入、マーカーの配置、カスタマイズするまでの流れを4つのStepでまとめてみました。
完成形のイメージは以下です。
MapBoxMapをAndroid、JAVAのみで使ってマーカーで詰まった話MapBoxMapは便利な地図APIです。
https://qiita.com/ppt_msdg_maas/items/c35c07ec2502e9a2de12
↑MapBoxMapの概要はこれ見てください
GoogleMap APIより体感お手軽に使えるしなんかマップの見た目とかかなりカスタマイズ効くので個人的には特に理由がなければ埋め込みのMapはこれを使うのが良いと思う。## 記事の内容
MapBoxMapのドキュメントはほぼKotlinで書かれてる。
Kotlinはとても強い言語なのでやはり特に理由がなければJavaよりこちらを使うべきだが、なんかの理由でJavaでAndroidアプリを作らなければならない場合があった場合、公式ドキュメントに書かれているメソッドとかクラスとかが一部うまく動かないので、主に詰まったところをこの記事に書いていく。## マーカーを打つ
公式ドキュメント:https://docs.mapbox.com/android/maps/guides/annotations/annotations/
ここにはmapboxmapでマーカーを打つ方
【Android】CoroutineExceptionHandlerのErrorもThrowしよう
# はじめに
[Shibuya.apk #45](
https://shibuya-apk.connpass.com/event/299317/) にて以下の発表がありました。### 要約
本記事に必要な部分のみを要約すると下記の通りです。– runCachingはThrowableをcatchするため、Errorも含まれている。(ErrorはThrowableのサブタイプのため)
– Errorは回復不可能な例外であり、アプリはただちに終了すべき### この内容を受けて
優秀なAndroidエンジニアから[CoroutineExceptionHandler](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-exception-handler/)についても同じことが言えるのではないかという提案がありました
【未解決】突然、Google Play Console デベロッパーアカウントが停止され、アプリが全て削除された話
[株式会社Never](https://neverjp.com/)のshoheiです。
株式会社Neverは「NEVER STOP CREATE 作りつづけること」をビジョンに掲げ、理想を実現するためにプロダクトを作り続ける組織です。モバイルアプリケーションの受託開発、技術支援、コンサルティングを行っております。アプリ開発のご依頼や開発面でのお困りの際はお気楽にお問合せください。
https://neverjp.com/contact/# TL;DR
– 弊社のGoogle Play Console デベロッパーアカウントが突然停止、公開していたアプリが全て削除、アプリのアップロードもインストールもできない状態に
– 自社ゲームアプリのポリシー違反によるものだが、違反内容に思い当たる節は無く、再審査請求をした
– TODO(オチを書く)# 概要
弊社が運用していたGoogle Play Console デベロッパーアカウントが突然停止され、自社アプリが全て削除されました。
急な出来事かつ停止した理由に思い当たる節はなくとても混乱しました。
巷でアプリの配信停止はたまに
【Android】Glanceでウィジェット開発〜状態管理編〜
本記事は以下の導入編の続きです
https://qiita.com/Seo-4d696b75/items/3cb024a71307e1d7d3c8
———–
# Glanceウィジェットの状態管理
ウィジェットは通常のアプリとは異なる仕組みで描画・状態管理されるため、Jetpack Compose + ViewModelとはだいぶ要領が変わります。
https://developer.android.com/jetpack/compose/glance/glance-app-widget?hl=en
最初に Glance での状態管理の基本を確認してから以下2種類のケースを紹介します
– 定期的に更新する
– ユーザー操作をトリガーに更新する[本記事で作成するアプリ・ウィジェットの全ソースコードをGitHubで公開しています](https://github.com/Seo-4d696b75/glance-widget-demo/tree/count-stateful)
## 状態の参照
Glance では簡単に [Preferences Da
VSCodeで.NET MAUIの開発環境構築
# はじめに
## .NET MAUIについて
.NET MAUI(Multi-platform App UI)は、C#とXAMLを使用してモバイルアプリやデスクトップアプリを開発することができるクロスプラットフォームのフレームワークです。名前の通り、Microsoftの.NETシリーズとして提供されています。
これまではXamarin.Formsという名前で提供されてきましたが、2024年5月1日にサポートが終了し.NETシリーズに統合される予定となっています。
https://dotnet.microsoft.com/ja-jp/platform/support/policy/xamarin
## Visual Studio for Macのサポート終了について
.NET MAUIでiOSやMacOS向けのアプリをビルドするにはmacOSの環境が必要ですが、
公式から提供される開発環境としては、Visual Studio for Macが唯一の手段となっていました。しかしながら、2023年8月に、MicrosoftからVisual Studio for Macの廃止
【Android】Kotlin用の静的コード分析ツール「Konsist」を導入してみた
# はじめに
この記事は [and factory.inc Advent Calendar 2023](https://qiita.com/advent-calendar/2023/andfactory) の10日目の記事です。
昨日は @nsym__m さんの「[今年やってよかった輪読会の本と進め方](https://qiita.com/nsym__m/items/fa24d9eed123dc8f1a95)」でした。本記事では、Kotlin用の静的コード分析ツールである「Konsist」を試しに導入してみたので、導入方法や実際に作成した内容を共有したいと思います。
# :eyes: Konsistとは
https://github.com/LemonAppDev/konsist
> 「Konsist」は、Kotlin専用の静的コード分析ツールです。コードの一貫性とコーディング規約の遵守を目指し、Kotlinプロジェクトの統一されたコード構造を維持します。このツールは、JUnitやKotestを使用した単体テストの形式で、コード品質を確保するためのチェックを行います。
(Ch
DreamServiceでエオルゼア時計スクリーンセーバーを作る
# はじめに
この話は『 [ThinkSmart View for Zoom](https://psref.lenovo.com/product/thinksmart/thinksmart_view_for_zoom) 』という製品の新古品を[結構安いお店](https://iosys.co.jp/)で買ったところから始まります。
とりあえずROMイメージをごにょごにょして(保障対象外です)APKのインストールができるようになりましたが、何に使いましょうか…。
そうだね、エオルゼア時計だね!(お約束)
せっかくなのでスクリーンセーバー化して、いつでも見れるようにしましょう。# コード
アドベントカレンダー進行というわけで、ガシガシとコーディングしていきましょう。
## レイアウトXML
簡易的な割に長いので折りたたんでいます
“`xml:daydream.xml
【Android】RatingBar使ってみた【Kotlin】 # 実践
“`php:activity_main.xml
“`
xml側はそのままRatingBarとして設定できます。以下は 使えるメソッドを紹介します。
val ratingBar : RatingBar = findViewById(R.i
FileStreamの正体🤔(UnityAndroidの場合)
# 前書き
この記事は、2023のUnityアドカレの12/9の記事です。
今年は、完走賞に挑戦してみたいと思います。Qiita君ぬい欲しい!https://qiita.com/advent-calendar/2023/present-calendar#qiita_award
# はじめに
C#でファイルを扱うときには、`System.IO.FileStream`という抽象化された型で取り扱うことができます。C#…のランタイムである.NETは、これをOSレベルのファイルシステムにつなぐことで実際のファイルにアクセスできるということです。
Androidのネイティブ(NDKによるC++)とつなぐ必要があったり、このFileStreamが何者なのかを調べる必要がありました。本記事ではそれを追跡する過程をご紹介します。
# とりあえずC#で書いてみる
適当にFileStreamを使ったC#コードを記述します。
“`csharp
public class FileAccessTest : MonoBehaviour
{
void Start()
{
Ningbo Chem plus New Material Tec. Co., Ltd
Ningbo Chem-plus New Material Tec. Co., Ltd. was established in 2009. It is a technologically innovative company with independent research and development capabilities, self-support import and export rights and a professional service team. It mainly produces and sells fine chemicals such as paper chemicals, C6 oil repellent, and fluorine-free oil repellent. Chem-plus has multiple production bases in Zhejiang, Jiangsu, Fujian and South Korea.
Flutter 個体識別IDの取得方法 iOS/Android
# デバイスIDの取得方法
実務でデバイスの個別識別IDを取得する必要が生じたため、その方法を共有します。まず、`flutter pub add device_info`を実行して、`device_info`パッケージの依存関係をプロジェクトに追加します。
次に、このパッケージをインポートします。
“`dart
import ‘package:device_info/device_info.dart’;
“`
# AndroidでのdeviceID取得方法
AndroidデバイスのIDを取得するには、DeviceInfoPluginを使用します。以下はその例です。
“`
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
print(‘Android Device ID: ${androidInfo.androidId}’);
“`
このコードは、非同期関数内で実行する必要があります。androidId
Compose Material3に3つあるNavigationDrawerの違い
Compose Material3 には NavigationDrawer の実装が 3 つ存在しています。
自分でもどれがどのような見た目でいつ使うのかわからなくなるので、スクショ付きで残しておきます。## 見た目の違いまとめ
|ModalNavigationDrawer|DismissibleNavigationDrawer|PermanentNavigationDrawer|
|:–:|:–:|:–:|
|| | ![Screens
CordovaでUDPブロードキャストを受信する
前回の投稿で、ESP32に接続したセンサ信号をUDPブロードキャストしました。
[ESP32で計測したセンサーデータをUDPブロードキャストする](https://qiita.com/poruruba/items/e19dce57d1b73795c683)
今回は、CordovaでUDPブロードキャストを受信するプラグインを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/0101d6d1-3077-3c1e-1a75-8c1bfed63e91.png)
アプリケーションは、ランダム画像を表示するクロックにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/40adf3bd-bcac-6b40-3377-1dd7e9cc9dbe.png)
クロック表示画面には、ランダム画像提供サイトから取得される画像を背景画像として表示します。
もし
Android で日本語でも色々なウェイトのフォントを使いたい
この記事は、[フラー株式会社のカレンダー | Advent Calendar 2023 – Qiita](https://qiita.com/advent-calendar/2023/fuller-inc) の 9 日目の記事です[^backstory]。
[^backstory]: 本当は違うネタを書くつもりでしたが、うまくいかず急遽思いついたことを書いてます。
8 日目は [いのりこ (id:inoriko711)](https://inoriko.hatenablog.com/about) さんで [弊社エンジニアリンググループ初、産休取得してみた](https://inoriko.hatenablog.com/entry/2023/12/08/115449) でした。
## はじめに
デザインの観点から、複数の Light や Medium といった色々なウエイトのフォントを使いたいということがあります。しかし、Android の標準では日本語フォントは Regular と Bold の 2 種類しか表示できないです[^default]。
[^default]: An
jetpackComposeでPaLM APIを使うための環境構築
# 開発環境
MacBookPro(M2)# 環境構築
[参考(PaLM API: Android のテキスト クイックスタート)](https://developers.generativeai.google/tutorials/text_android_quickstart?hl=ja)
### palmのAPIkeyを取得する
[このドキュメント](https://developers.generativeai.google/tutorials/setup?hl=ja)を参考に、APIを取得してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2255712/5bd448e6-8668-6c06-c5e0-c4a92d81ab55.png)APIkeyですが、コンソールから確認できても取得ができなかったため、環境変数として実装しました。そのままapikeyを実装すれば動きました。
### APIクライアントをインストールする
[これ](https://dev
Android: adb の使い方
## バージョンの確認
“`bash
adb version
“`“`text
$ adb version
Android Debug Bridge version 1.0.41
Version 34.0.5-10900879
Installed as /home/uchida/Android/Sdk/platform-tools/adb
Running on Linux 6.5.0-14-generic (x86_64)
“`## 接続しているデバイスを調べる
“`bash
adb devices
“`“`text
$ adb devices
List of devices attached
123456789A device
“`## Android の shell を使う
“`bash
adb -s 123456789A shell
“`“`text
$ adb -s 123456789A shell
rk322x_box:/ $ uname -a
Linux localhost 4.4.126 #26 SMP PREEMPT Mo
【Android Studio】覚えておくべきショートカット(Mac)
# 1. はじめに
この記事は、[NTTテクノクロスアドベントカレンダー2023](https://qiita.com/advent-calendar/2023/ntt-tx)シリーズ2の8日目の記事です。
こんにちは、NTTテクノクロスの岡崎と申します。
普段はモバイルアプリの開発アジャイルで行っています。約5ヶ月前にiOS/Androidアプリの開発を始めました。
開発初心者だった私がつまずいた点についてお話ししようと思います。# 2. ショートカット多すぎ問題
Androidアプリ開発では、IDEとしてAndroid Studioを使っています。
とても強力なIDEでショートカットが沢山あります。
もちろん時間をかけて1つ1つ覚えていけば問題ないと思います。しかし、私は業務ではペアプロで凄腕エンジニアと一緒にコーディングを行っていました。
彼らは息をするようにショートカットを使います。沢山のショートカットを使いこなすわけです。見ているファイルが急に変わったり、ウィンドウが出たり、
開発当初の私は何が起きたのか理解できず無事迷子になっていました。技術のキ
スマホ不要で動く!ARグラス”INMO Air2″の開発者モードを有効化する
# INMO Air2とは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139643/fecce79d-8a2e-42f9-b40c-14584cd3c30f.png)
2023年4月に発売された中国のINMO社が作った光学式のARグラスです。
最近まで、GREEN FUNDINGというサイトでクラウドファンディング経由で購入可能でした。
https://greenfunding.jp/lab/projects/7556旧式のINMO Airでは、私の愛が爆発した[スライドを作って公開](https://speakerdeck.com/kotauchisunsun/inmoairwoshi-idao-sitemita-argurasunotoredoohujia-shuo)しています。
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139643/08356872-e816-4