- 1. implementation ‘io.realm:android-adapters:4.0.0’ を削除
- 2. 【 Jetpack Compose 】お気に入りの項目だけ表示させる
- 3. 【Android】ImegeViewで設定したアイコンの色を変える
- 4. AndroidStudioで実は便利なショートカット
- 5. 【Jetpack Compose】android初学者がModifierでできることをまとめました
- 6. Jetpack Composeで影(Shadow)を付ける方法と課題
- 7. [Android その4] Androidのアプリケーションの基本開発
- 8. MaterialShapes一覧
- 9. Compose Material3 1.4.0に追加予定のコンポーネントのメモ
- 10. ScaffoldでないComposeでSnackBarを出す
- 11. モバイルアプリのクラッシュ原因を効率的に分析しよう
- 12. Webエンジニア「Kotlin」を学ぶ
- 13. Nothing Phoneの背面についてるライトをいじれるSDKが公開されてたので試す【Glyph Interface】Glyph Developer Kit
- 14. 【fastlane】GooglePlayConsoleに前回アップロードしたアプリのversionCodeを取得する
- 15. android sdk の API レベルを 34にした時のメモ
- 16. ディープリンク・ウェブリンク・アップリンクの違い – Android
- 17. 高さ・幅を計算できるOnGloballyPositionedとは? – Jetpack Compose
- 18. CompositionLocalをうまく使おう
- 19. 【Kotlin】「メモ帳アプリ」で学ぶ「Clean Architecture」
- 20. 既存のAndroidプロジェクトをKMP化する手順
implementation ‘io.realm:android-adapters:4.0.0’ を削除
最近、MacBook を買い換えたので Git から新しい端末へ Android アプリのプロジェクトをクローンしてビルドしています。その時に古い Android アプリのビルドが失敗してしまいました。エラーを見ると ‘io.realm:android-adapters:4.0.0’ がダウンロードできないようでした。
>Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find io.realm:android-adapters:4.0.0.io.realm:android-adapters のために jcenter() を残していましたが、検索すると GitHub から Java ファイルをプロジェクトへ追加すればいいよ的なコメントを見つけました。
+++Webサイト抜粋+++
The Realm Adapters dependency is not moved to Maven yet. You can directly copy the RealmRecycle
【 Jetpack Compose 】お気に入りの項目だけ表示させる
## 今回実装したもの
お気に入りに登録した観光地のみを表示させる機能を実装しました。
トグルスイッチをオンにするとお気に入りだけが表示されて、オフにすると全ての観光地が表示されます。
| 実装した機能 |
|—|
||今回は、その実装方法をかねてより作成している、観光地リストアプリをベースにして紹介します。
https://github.com/jtakumi/jetpackList/tree/toggle
## 使用するもの
お気に入り機能を実装するために使用したものは以下のものです。– LandmarkViewModel.kt
– 観光地情報を保持する viewModel ですが、今回お気に入りかどうかの情報も保持するようにします
– FavoriteData.kt
– お気に入り情報
【Android】ImegeViewで設定したアイコンの色を変える
# はじめに
今回記事にする内容はタイトルにある通りですが、記事を書くきっかけになったのは
Jetpack Composeで色々触っていて、Iconのカラーを変えるのは簡単にできたけど、それ以外だとどうやってやるんだろ?と思ったのがきっかけです。# 実践
“`
準備段階としてImageViewを3つおきます。当然このままではImageがそのまま表示されているだけです。
AndroidStudioで実は便利なショートカット
# はじめに
今回は、普段あまり登場する場面はないけど覚えておくといざというときに便利すぎるショートカットを紹介していきます
### 本文cmd shift F8
—
このコマンドではブレイクポイントを検索することができます
デバッグ中に以前置いておいたブレイクポイントで止まってしまったりブレイクポイントを設置しすぎるとデバッグモードがうまく作用しなかったりするので便利ですcmd shift u 大文字小文字切替
—
enumや定数宣言時などに便利ですoption enter
—
赤線などでの警告箇所やエラー箇所でこのショートカットをすることで自動的にインポートしてくれたり簡易的に直してくれたりなど意外と便利ですcmd r
—
対象の文言を置換することができます
renameではうまくいかない部分などを置換するのに便利です### 最後に
今回は最近いろいろと気になって調べていたショートカットを備忘録程度の記事にしてみました
どなたかのお役に立てれば幸いです
【Jetpack Compose】android初学者がModifierでできることをまとめました
# 初めに
Jetpack Composeを用いたandroid開発について学ぶ中でUIの微調整のためにModifierを使うことが多かったため、主な使われ方(主観)について調べ、まとめました。
なお、当方、この記事が初投稿となります。拙い点もあるかと思いますが、どうか温かい目で見ていただければ幸いです。
## 目次
1. Modifierについて
2. Modifierの活用法(コードと実際の画面)
1. サイズ・レイアウト
2. 背景・ボーダー
3. オブジェクトの配置
4. スタイル調整
5. 視覚への効果
3. まとめ
### 対象読者
– android開発初学者の方
## Modifierとは何か
まず、Modifierとは、UIコンポーネント(UIのレンダリングを行う関数)に対して、**外観、レイアウト、動作**などを定義し、文字通り**UIコンポーネントに対しての修飾子**としての役割を果たしています。このModifierを有効に活用することで、UI要素のレイアウトや装飾、動作を柔軟に決定することができるため、複雑なUIを構成するためにはM
Jetpack Composeで影(Shadow)を付ける方法と課題
Jetpack Composeでコンポーネントに影を付ける方法とその中で発見した問題点をメモしてます
一番簡単なMaterial Design3のCardコンポーネントを使用する方法とModifierで設定する方法を取り扱っています::: note info
Cardを使用する方がおすすめです
:::
# 影のつけ方 – Cardコンポーネント
Cardには、Filled Card(塗りつぶしありカード)とOutlined Card(塗りつぶしなしカード)の2種類あります
以下では両方のUI紹介とパラメーターについてまとめています
## Filled Card(塗りつぶしありカード)のUI
“`
Card(
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.surfaceVariant,
),
modifier = Modifier
.size(width = 240.dp, height = 100.dp)
) {
[Android その4] Androidのアプリケーションの基本開発
# Intentの実装
Intentは、Androidアプリケーション内で操作やデータを他のアプリケーションやアクティビティに送信するためのメカニズムです。Intentを使うことで、異なるコンポーネント(アクティビティ、サービス、ブロードキャストレシーバーなど)の間で情報をやり取りしたり、特定のアクションを開始したりすることができます。__Intentには大きく2種類あります__ :
1\. 明示的Intent:
* 特定のアクティビティやコンポーネントを直接呼び出すために使用します。
* 例:現在のアクティビティから別のアクティビティを開始する。2\. 暗黙的Intent:
* アクションの内容を指定し、それを実行できるコンポーネントをAndroidシステムが選択します。
* 例:写真を撮るアプリや、電話をかけるアプリを起動する。# メモリアプリへのIntent追加
## 明示的Intent
例えば、メモアプリで新しいメモを追加する際に別のアクティビティを開く場合に、Intentを使用できます。これにより、メインアクティビティから新しいアクティビティへデータを渡すことがで
MaterialShapes一覧
Compose Material3 1.4.0 で追加される `MaterialShapes` デフォルトで用意されているものの一覧です。
|Name|Image|
|:–|:–:|
|Circle|![Circle](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126298/8346dda2-4d41-1430-9bf4-8d3b58c81937.png)|
|Square|![Square](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126298/90e30a5e-7f1e-3466-e4d0-8bd8ce2c995d.png)|
|Slanted|![Slanted](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126298/2b931703-154c-24d6-c685-de5b47e5bf6c.png)|
|Arch|![Arch](http
Compose Material3 1.4.0に追加予定のコンポーネントのメモ
Jetpack Compose の Material 3 のライブラリ 1.4.0 に追加されそうなコンポーネントのメモです。
これを書いている時点 (2024/9/7) では 1.4.0 は [Snapshot](https://androidx.dev/) でのみ使用可能で、実際に Stable のタイミングでは変更されている可能性があるので、使用前には公式のドキュメントを参照してください。(気が向いたら更新しておきますが)## Button Group
Segmented Button に近しい、ボタンをグループ化するコンポーネントです。
Segmented Button との使い分けは不明ですが、Segmented Button と同様に Single select or Multi select の実装が可能です。ScaffoldでないComposeでSnackBarを出す
掲題の通りです。
Compose化の初期段階で、まだFragmentは残しつつ、中身だけフルComposeにしているという状況で、SnackBarをどう出したら良いかと一晩悩みました。レイアウトxmlファイルを残して、そこにComposeViewを入れて出す方法も最悪有りかなと考えましたが、結論、以下のコードを元にいじって作成できました。
https://medium.com/@213maheta/snackbar-without-scaffold-in-jetpack-compose-c6868f908100
import文は長いのですが候補を選ぶの間違えるとビルド通らずに困ると思うので以下を展開して見てください。
import
“`kotlin
import androidx.annotation.StringRes
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
モバイルアプリのクラッシュ原因を効率的に分析しよう
モバイルアプリがクラッシュに至るまでの経路を俯瞰して把握し、より効率的に原因分析することを可能にするNew Relic Mobile User Journeyをご紹介します。
# New Relic Mobileとは
すでにNew Relic Mobileをご存知の方は次のセクションに飛んでいただいて大丈夫です。オブザーバビリティプラットフォームであるNew Relicの一機能であるモバイル監視機能(New Relic Mobile)は、モバイルアプリに組み込まれたSDKがモバイルアプリのパフォーマンスやエラー、ユーザー操作などを記録することで、モバイルアプリにおけるユーザー操作、パフォーマンスやアプリのエラー、クラッシュなどの問題を分析できる機能です。
SwiftやObjective-C、Javaなどで開発されたiOS/Androidのネイティブアプリはもちろん、FultterやReact Native、Xamarinなどのクロスプラットフォームフレームワーク、ゲームでよく利用されるUnity、Unreal Engineにも対応しています。
また、モバイルアプリと通信し
Webエンジニア「Kotlin」を学ぶ
現在Webエンジニアとして受託企業で働いているものです。
この度、転職を機にAndroidアプリエンジニアへキャリアチェンジをすることになったため、備忘録としてKotlinの学習記録を残すために投稿しています。
この記事ではKotlinとはどのような言語なのかということについてまとめています。# Kotlinとは何か?
JetBrains社によって開発されたモダンなプログラミング言語。
2017年にGoogleからAndroid開発の公式言語として採用されており、Android開発において非常に人気が高い言語になっている。
また、マルチプラットフォームをサポートしており、JVM, Android, JavaScript, ネイティブ向けのコードをコンパイルすることができる。そのため、1つのコードベースから複数のプラットフォームに対応したアプリケーションを構築することができる。# Kotlinの持つ特徴
### 静的型付け言語
– コンパイル時に型がチェックされるため、型安全性が高く、実行時のエラーリスクが減少し、信頼性の高いコードを書くことができる
– 型推論により、型を省略す
Nothing Phoneの背面についてるライトをいじれるSDKが公開されてたので試す【Glyph Interface】Glyph Developer Kit
NothingPhoneの背面に無駄に搭載されているライト「Glyph Interface」をいじれるSDKが公開されていることを今日知りました
https://jp.nothing.tech/pages/glyph-developer-kit
https://github.com/Nothing-Developer-Programme/Glyph-Developer-Kit
Phone(2a)をメインで使用しているので試してみます
## 今回作ったもの
https://github.com/SousiOmine/GlyphInterfaceExample
## 環境
– Windows11 64bit 23H2
– Android Studio Koala Feature Drop 2024.1.2
– Nothing Phone(2a) 国内版
– Nothing OS 2.6## セットアップ
プロジェクトはEmptyViewsActivityテンプレートから言語をJavaに、MinimumSDKはNothingPhone以外サポートする必要がないので、API31
【fastlane】GooglePlayConsoleに前回アップロードしたアプリのversionCodeを取得する
:::note info
fastlaneでAndroidのストア申請を自動化していた時のこと
:::![バージョンコード10はすでに使用されています 別のバージョンコードをお試しください](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3841535/122e6041-7bf2-bb6d-e951-c9778d39b211.png)
**↑versionCodeは重複できないんだった!**
前回アップロードしたアプリのversionCodeをGooglePlayConsoleから取得して+1すれば解決できそう… (上の図だと10を取得してきて11に上げるイメージ)
iOSにはビルド番号を取得できるactionがあるけど
Androidにもそういうのがあるのかな?と思い1時間ぐらい調べてみましたが…
#### 出てこないぃぃ!!!!!## と思ったら公式ドキュメントに書いてありました…
“`ruby: GooglePlayConsoleに前回アップロードしたアプリのversi
android sdk の API レベルを 34にした時のメモ
### bundle.gradle
“`:bundle.gradle(:app)
compileSdk 34
targetSdk 34
“`
“`:bundle.gradle(:project)
classpath ‘com.android.tools.build:gradle:7.2.2’
“`### メニュー
:::note info
File > Project Structure
Android Gradle Plugin Version -> 7.2.2
Gradle Version 7.4.2
:::
ディープリンク・ウェブリンク・アップリンクの違い – Android
業務中にディープリンク(Deep Links)・ウェブリンク(Web Links)・アップリンク(App Links)がごちゃごちゃになることがあるのでまとめました!
# 用語まとめ
読み進めていく中でパッと見ではわからなかったものをまとめました!
・スキーム(scheme): 「[https://vegcale.com/](https://vegcale.com/)」の「https」のように「://」より前の部分
・uri: この文脈では、どこに何があるかを識別する文字列 (おおまかな詳細はこちら)
# 全体像
下の図はAndroid公式の「Handling Android App Links」から拝借しました。こちらの図でなんとなくわかるかもしれませんが、ディープリンクは総称になっています。
迷ったらディープリンクと言っておけばとりあえず大丈夫です笑
下記ではそれぞれのリンクがどのように分かれているか、その見分け方をまとめています。
![link-types-capabilities.png](https://qiita-image-store.s3.ap-northeast-1.
高さ・幅を計算できるOnGloballyPositionedとは? – Jetpack Compose
一部のコンポーネントの高さを測り、ほかのコンポーネントに使用したいことがあると思います
そんなときに使える[OnGloballyPositioned](https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/OnGloballyPositionedModifier)をまとめています!
# コード
“`
val localDensity = LocalDensity.current
var height by remember {
mutableStateOf(0.dp)
}Text( // 高さを測りたいコンポーネント
text = “Hello World”,
modifier = Modifier
.onGloballyPositioned { coordinates ->
height = with(localDensity) {
coordinates.size.height.toDp(
CompositionLocalをうまく使おう
# CompositionLocalとは
公式リファレンス: https://developer.android.com/develop/ui/compose/compositionlocalComposeのバケツリレーでメソッドに値の受け渡しが不要になります
AndroidCompositionLocalsでもすでに便利な定義がされています“`Kotlin:AndroidCompositionLocals.android.kt
/**
* The Android [Configuration]. The [Configuration] is useful for determining how to organize the
* UI.
*/
val LocalConfiguration = compositionLocalOf{
noLocalProvidedFor(“LocalConfiguration”)
}/**
* Provides a [Context] that can be used by Android
【Kotlin】「メモ帳アプリ」で学ぶ「Clean Architecture」
以下のUdemyの教材で「Clean Architecture」について学んでみました。
セクション2とセクション3を視聴したことで『「Clean Architecture」に登場する「Entities」「Use Cases」とは何か?』を少し理解できました。
> Clean architecture & SOLID principles for Android in Kotlin
https://www.udemy.com/course/cleanandroid/![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359201/2637318a-672f-ee18-29c0-40eeea2e7270.png)
コース内で作成されるアプリはシンプルなメモ帳アプリでKotlinの基礎がある程度できている人であれば理解できる内容かなと思います。
この教材で「Entities」「Use Cases」は理解できたけど、教材内で触れられていない「Controllers」「GateWays
既存のAndroidプロジェクトをKMP化する手順
本田技研工業でAndroidアプリ開発を担当している須藤です。
Kotlin Multiplatform(以下KMP)の新規プロジェクトを作る方法はよく見かけますが、既存のAndroidプロジェクトをKMP化する方法がわからなかったので調べてみました。
手順はJetBrainsの「[**Make your Android application work on iOS – tutorial**](https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-integrate-in-existing-app.html)」を参考に、自分用の備忘的な意味も兼ねてかなり最低限に絞ってまとめています。
詳細は上記をみていただくのがよいと思いますが、あまり時間がない中でざっくりとした手順を知りたい方や、KMPに馴染みがなく導入のイメージを掴みたい方の手助けになれば幸いです!
## 目次
1. [Wizardを使ってKotlin Multiplatform Sharedモジュールを追加する](#1wizardを