Android関連のことを調べてみた

Android関連のことを調べてみた

【Android】繰り返し書くことの多い実装はライブテンプレート機能を使おう

# はじめに
日常的に業務を進めていると、同じ実装を何度も実装したりすることありますよね。
その都度コピペしたりして、ただ部分的に特殊な実装が挟まったりするとまたコピペが必要になるなど繰り返しが多ければ多いほど無駄な時間を浪費しがちです。
そこで繰り返し同じ実装を行う場合にはAndroidStudioのライブテンプレート機能を使うと便利です、今回はこのライブテンプレートに関してまとめておこうと思います。

# ライブテンプレート機能とは?
ライブテンプレート機能は、Android StudioおよびIntelliJ IDEAで提供される便利な機能で、特定のコードスニペットを簡単に挿入するためのツールです。
この機能を利用することで、コードの入力を効率化し、よく使うコードパターンを標準化することができます。

実はこの機能、2015年6月にリリースされたAndroid Studio v1.2.2から利用可能で結構古くからある機能です。

# ライブテンプレートの設定方法
ライブテンプレートを設定する為にはまず `Android Studio > Settings` より設定画面を表示しま

元記事を表示

Android開発におけるshellとvimの個人的な活用方法について

Android開発では高機能なAndroid Studioという開発環境があります。そのため、shellやvimを使わなくてもGUIでほとんどのことができてしまいます。ショートカットも豊富にあるので、shellやvimを使わなくても効率的な開発ができます。

開発現場でも、gitのコマンドを使わずにAndroid StudioのGUIから操作している方をよく見かけます。アンケートを取ったわけではないのですがほぼGUIのみで開発している方も多い気がします。

しかし私は積極的にshellやvimを使うことにしています。

今回はAndroid開発において、なぜ高機能なGUIがあるのにshellやvimを使うとよいのか、また私がどのように使っているのかをご紹介します。

## なぜshellやvimを使うのか、学ぶのか

仕事でAndroid開発しかやらない、ということはないからです。現状ほとんどの業務をAndroid Studioからやっているにしても、メモを取ったり、データを処理したりするような、IDEを使わない作業もやっていると思います。

ExcelやNortionを使ったりする

元記事を表示

Navigation Composeのアニメーションまとめ

## はじめに
Navigation Compose を使った際のアニメーションが気になったので、勉強がてらまとめてみました。

## Navigation Compose でのアニメーションについて
以前までは [Accompanist Navigation Animation](https://google.github.io/accompanist/navigation-animation/) というライブラリが利用されていたそうですが、version 2.7.0 以降では Navigation Compose 自体でアニメーションがサポートされるようになったそうです。

>AnimatedContent が安定版になったため、コードを Accompanist Navigation Animation から Navigation Compose 自体に戻せるようになりました。
>[Navigation version 2.7.0](https://developer.android.com/jetpack/androidx/releases/navigation?hl=ja#ve

元記事を表示

Android クイック設定タイル開発 基礎の基礎の基礎

# はじめに
– 簡単なAndroidアプリを作りたく、クイック設定タイル(以下,タイル)を使おうとしました。
– 基礎練習として、デフォルトのタイルの並びに自作タイルを追加し、自作タイルの適当なライフサイクルでログを出力するだけのアプリを製作しました。
– クイック設定タイル開発については、その筋の人々にとってあまりにも簡単すぎるのか、それともクイック設定タイルを作ろうなんて奴はいないのか、ググっても情報が少なく、はまったポイントがあったため、備忘録と情報共有を兼ねて記事にします。
– ド初心者向けのタイルのHello Worldのつもりです。

# クイック設定タイルとは
Androidスマホを上からスワイプしたときに降りてくる、通知の上に並んでいるボタンたちのことです。
設定アプリを開かずに、素早くWi-Fiの接続先を選択したり、BluetoothをON/OFFしたりできるあれです。

# 製作手順
1. TileServiceを継承したクラスを作ります。
1. AndroidManifest.xmlにて、1で作ったクラスをTileの仲間に入れてくれるようにお願いします。

以上

元記事を表示

Android 開発者オプションが有効か確認する方法

# 開発者オプションが有効か確認する方法

こちらを使用します

https://developer.android.com/reference/android/provider/Settings.Global?_gl=1*swzbfi*_up*MQ..*_ga*MjA4ODE2ODE5OC4xNzIxMTE0MjQ4*_ga_6HH9YJMN9M*MTcyMTExNDI0OC4xLjAuMTcyMTExNDI0OC4wLjAuMA..#DEVELOPMENT_SETTINGS_ENABLED

サンプルコード
“`.kt
private fun debugCheck() {
val isDebugMode = Settings.Global.getInt(contentResolver, DEVELOPMENT_SETTINGS_ENABLED, 0)
Log.d(“開発者モード”, isDebugMode.toString())
}
“`

# 実行結果
開発者モードON
`開発者モード 1`
開発者モードOFF
`開発者モード 0`
 取得した結果を確認すれ

元記事を表示

Flutter で Android のナビゲーションホームボタンと同じようにホーム画面に戻る処理を実装する

# なにこれ

– 戻るボタンを無効化したけど、戻るボタンで色々処理をさせたい時があった
– その時、前画面に戻るだけでなく、最上位の画面なら pop せずにアプリをバックグラウンドに行かせて、ホーム画面に行く処理を実装したいと思った
– 以前書いた戻るボタン無効化の記事は以下

https://qiita.com/su3-hokkaido/items/48f5d8bf8b5a487f691f

# 解決方法
### `move_to_background` パッケージをインストールする

パッケージ公式ガイドはこちら

https://pub.dev/packages/move_to_background

インストールコマンドはこちら
“`dart
flutter pub add move_to_background
“`

yaml に直接書く場合はこちら(バージョンは後述の公式ページにあるバージョンを参照してください)
“`pubspec.yaml
dependencies:
move_to_background: ^1.0.2
“`

### onPopInvo

元記事を表示

Flutterでの画面遷移

Navigator, MaterialPageRoute
onPressed:(){}の波括弧の中にルーティングを記述して、画面遷移を実現する。

#### 画面の移動
“`dart
Navigator.of(context).push(
MaterialPageRoute(builder: (context) {
// 遷移先の画面のウィジットを指定
return MoveToPage();
}),
);
“`

#### 前画面に戻る
“`dart
Navigator.of(context).pop();
“`

元記事を表示

【 Jetpack Compose 】 で画面遷移を実装

## 今回実装する機能
観光地リストから観光地の詳細情報が載っている詳細画面に移動する機能です。

XML は一切使わずに全てjetpack compose で画面も実装します。
## 必要なもの
今回はいくつかのプログラムファイルに分けて実装しています。

1. NavController の宣言
2. NavHost で遷移する画面の宣言
3. 引数のタイプをあらかじめ宣言
4. クリック時の処理に詳細画面のルートを指定して遷移するようにする

## プログラムの動作
今回のアプリはこのような動作をします。
mermaid により図を作成

“`mermaid
flowchart TD

LandmarkJsonFile[“観光地情報JSON ファイル読み込み”]
LandmarkList(“観光地の件数分LandmarkL

元記事を表示

【UE4】Google Play の要件を満たす App Bundle を作る

# 概要

UE 4.27 で Google Play の対象 API レベル要件や、それに付随する様々な要件を満たす Android App Bundle (AAB) を、できるだけ簡単に作る方法について解説する。
なお、署名や Play Asset Delivery (PAD) といった基本的な設定は完了している前提とする。

:::note info
対象 API レベル 34 で問題ないことは確認済み(2024 年 8 月時点)。
:::

# 環境

* Unreal Engine 4.27

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239989/5d1fadaf-1ec4-b4c7-6234-26d91083a0f6.png)

Location of Android SDK C:/Users/[UserName]/AppData/Local/And

AndroidからiPhoneへデータ移行、SIMはいつ入れるのか「情報」

## SIMカードを差し替えるタイミング

機種変更でデータ移行をする時、SIMカードはいつ入れるのかと困ったことはありますか。ここでは、SIMカードを差し替えるオススメのタイミングについて解説します。

SIMカードを差し替えるタイミングは特に決まっていませんので、どちらでも大丈夫ですが、以下通りの違いがあります:

– **データ移行をする前にSIMカードを入れる場合**
– すぐに新しいiPhoneで通信ができますが、一部のデータ移行アプリが正常に動作しない可能性もあります。

– **データ移行をした後にSIMカードを入れる場合**
– データ移行中の通信トラブルを回避できます。しかしその後はSIMカードの設定が必要となります。

– **データ移行途中にSIMカードを入れる場合**
– 問題が発生する可能性があります。順調にデータを移行し、通信トラブルを避けるために、データ移行が完了するまで待つのが最も安心です。この点から、SIMカードを**データ移行をした後入れ替えておくこと**をお勧めします。

データを移行した後、すぐにスマホを使いたい方は、クイ

Jetpack Compose 関連の依存関係まとめ

## はじめに

– Jetpack Compose に関する依存関係について、時々確認することがあるのでまとめました
– 記事を作成した時点での Android Studio のバージョンは「Koala | 2024.1.1」です
– ちなみに Build は「#AI-241.15989.150.2411.11948838, built on June 11, 2024」でした
– 依存関係は Gradle version catalogs を使って設定しています
– カタログを使えない事情がありましたら、従来通りの記法に読み替えて頂ければと思います
– `version.ref` には適当な値が設定されているとお考えください
– 不備や認識違いがありましたら、指摘頂けると大変助かります

## プロジェクト作成直後に設定されている依存関係

– プロジェクト作成時のウィザードで [Phone and Tablet] > [Empty Activity] を選択した場合のデフォルト設定です
– `libs.androidx.compose.ui` があるので、

Androidスマホからパソコンへデータを安全に移行する3つの方法

## Androidスマホのデータをパソコンへ移行する前の準備

デジタルライフを楽しんでいるうちに、スマホの容量がいっぱいになってしまうことがあるのではないでしょうか。十分な空き容量を確保するため、[Androidの内部ストレージからSDカードへデータを移行する](https://www.fonepaw.com/ja/solution/move-data-from-storage-to-sd.html?utm_source=qiita.com&utm_medium=referral&utm_campaign=fpmdfsts0802
“Androidの内部ストレージからSDカードへデータを移行する”)或いはパソコンへ移行する必要があります。本記事はパソコンへデータを移行する方法についてご紹介します。大切な写真やお気に入りの音楽をパソコンへよりスムーズで安全に移行するように、まずは以下の準備をしておきましょう。

**1.バックアップを確認します**

データを移行する前に一番重要なのは、バックアップの確認です。かけがえのない思い出やデータが失われないよう、事前にバックアップしましょ

FlutterとFlaskを使用したTimeeみたいなパートタイム求人アプリの作成

### はじめに

こんにちは!今回は、FlutterとFlaskを使用して、ユーザーが1時間または2時間のパートタイム求人に応募でき、管理者が新しい求人を投稿できるアプリを作成する方法をご紹介します。

APIはローカルホストのポート8000で動作すると仮定します。

### Flutterプロジェクトのセットアップ

まず、新しいFlutterプロジェクトを作成しましょう。

“`bash
flutter create part_time_job_app
cd part_time_job_app
“`

### APIとの通信

FlutterアプリからFlask APIと通信するために、`http`パッケージを使用します。`pubspec.yaml`に以下を追加してください:

“`yaml
dependencies:
http: ^0.13.3
“`

### 求人一覧の表示

FlaskAPIから求人一覧を取得し、表示する機能を実装します。

“`dart
import ‘package:flutter/material.dart’;
import ‘pac

Flutterでtodoアプリを作る

https://www.flutter-study.dev/todo-app/about-todo-app

👆を参考に分からないところと、新しい学びをメモ

### 画面遷移
#### ある画面から別の画面へ移動
“`dart
{
Navigator.of(context).push(
MaterialPageRoute(builder: (context) {
// 遷移先の画面としてリスト追加Widgetをラップするclassを指定
return TodoAddPage();
}),
“`

#### 元の画面へ戻る
“`dart
{
// “pop”で前の画面に戻る
Navigator.of(context).pop();
},
“`
+ Navigator.of(context).push(…)、.pop()
+ Navigator
+ Flutterのウィジット
+ アプリ内のナビゲー

FlutterのStateful Widgetの理解を深める

値が変更されたときに、UIを更新してほしいWidgetを作る時に使うのがState。

StatefulWidget を継承したWidgetと
State を継承したデータ
を作成することで、Stateを元にUIが作成される。

### StatefulWidgetを継承したクラスの作成
“`dart
class MyWidget extends StatefulWidget {
@override
// インスタンスの作成
_MyWidgetState createState() => _MyWidgetState();
}
“`

### Stateを継承したクラスの作成

“`dart
// クラスのインスタンス化で生成したStateを継承して使う
class _MyWidgetState extends State {
// データを宣言
int count = 0;
“`

なんとなくで書かないための高階関数/ラムダ式

# はじめに
今回は高階関数についての説明をしていこうと思います
### 本文
まず、高階関数とは、関数を引数として受け取るか、返却物として関数を返す関数のことです。
後者だけならイメージがつきやすいかと思いますが、自分は前者で混乱することがあったので前者をメインに解説していきます。
最もよく目にするのは`() -> Unit`こちらだと思います。
関数の引数にかっこがついた時点でその引数は関数になります。
ここで、カッコの中に型を持つと高階関数用の引数ということになり、高階関数を呼び出す側のラムダ式内で使うことができます。
逆に高階関数側では、引数で受け取った関数を呼び出すときには指定された型のものを渡さなければいけません。
“`kotlin
fun hoge(fuga: (String) -> Unit) {
fuga(“”)
}

hoge {
println(it)
}
“`
矢印の先は高階関数を呼び出した関数のラムダ内で返されるべき値の型を指定することができます。
そのため、よく見るUnitは何か返すわけではないが、通知のためやそれが呼び出されたときに何か

Flutterで作る本格的なPongゲーム!スコア表示付き

## Flutterでゲームを作ろう!

こんにちは、Flutter開発者の皆さん!今回は、Flutterを使って本格的なPongゲームを作成する方法を詳しく解説します。スマートフォン向けに最適化され、右上にスコアを表示する機能も実装します。さあ、一緩に作っていきましょう!

### 1. プロジェクトのセットアップ

まずは、新しいFlutterプロジェクトを作成し、必要なパッケージをインストールします。

“`bash
flutter create pong_game
cd pong_game
flutter pub add flame
“`

### 2. main.dartファイルの作成

`lib/main.dart`ファイルを以下のように編集します。

“`dart
import ‘package:flame/game.dart’;
import ‘package:flutter/material.dart’;
import ‘pong_game.dart’;

void main() {
runApp(
MaterialApp(
home

長押し中はずっとイベントを発火する みたいな処理をやる

# コード

“`kotlin
suspend fun PointerInputScope.detectTapOrLongPressingGestures(
onTap: () -> Unit,
onLongPressing: () -> Unit,
longPressInterval: Long = 100L
) = coroutineScope {
awaitEachGesture {
val down = awaitFirstDown()
val longPressChange = awaitLongPressOrCancellation(down.id)
if (longPressChange == null) {
onTap()
return@awaitEachGesture
}
launch {
do {
delay(longPressInterval)

Flutter中級者へのステップアップガイド:実践的なテクニックと応用

# Flutter中級者へのステップアップガイド:実践的なテクニックと応用

こんにちは、Flutterファンの皆さん![前回の初心者向けガイド](https://qiita.com/negisys/items/1b7ba800908929adfdd2)に続いて、今回はもう一歩踏み込んだ内容をお届けします。Flutterの基本を押さえた方々向けに、より実践的なテクニックと応用例を紹介していきます。長い記事になりますが、じっくりと取り組んでいけば、きっとFlutterマスターへの道が開けるはずです!

## 1. 高度なウィジェットの活用

Flutterには、基本的なウィジェット以外にも多くの高度なウィジェットが用意されています。これらを使いこなすことで、より洗練されたUIを作成できます。

### 1.1 CustomPainter

`CustomPainter`を使用すると、カスタムの図形やグラフィックスを描画できます。

“`dart
class MyPainter extends CustomPainter {
@override
void paint(Canvas

わいとVimとの出会い

:::note warn
この記事は[Vim駅伝](https://vim-jp.org/ekiden/)の2024年7月31日向けの記事です。
前回は、[thinca](https://thinca.hatenablog.com/entry/2024/07/megurovim-24) さんでした。
:::

# はじめに

ども、とんとんぼです!iOSを中心にモバイル開発やってます。
最近、vim-jp というコミュニティに入りました。
そこで自己紹介を含めて自分がどのようにvimと出会い、vimの沼にハマったかを紹介します。

# Vim との出会い
大学4年生の時、私はVimと出会いました。当時、理系の学生として論文やレポートを作成するために、主に $\TeX$ という文章作成ツールを使っていました。

$\TeX$ は、Donald E. Knuthによって開発され、複雑な数式を美しく整形することができる文章作成ツールです。しかし、$\TeX$ の環境構築が非常に難しいことから、自分のローカル環境ではなく、外部ツールに依存することにしました。そこで出会ったのがOverleafと