-
【WidgetKit】テキストのローカライズ方法
WidgetKitでテキストをローカライズするには、Localizable.stringsファイルを作成して、ファイルにキーと値を追加します。 例えば、 "Hello, World!" を英語と日本語に分けたい場合、次のようにそれぞれのキーと値を追加します。 // 英語 "hello_worl... -
【WidgetKit】サポートするWidgetのサイズを設定するには?
何も指定しない場合、デフォルトでsystemSmall, systemMedium, systemLargeが設定されます。 特定のサイズだけ有効にしたい場合はsupportedFamiliesでサポートしたいウィジェットサイズを指定する必要があります。 struct SampleWidget: Widget { let kind... -
【Unity】データのセーブ&ロード
【データのセーブ】 PlayerPrefs.Set●●("キー", 値)でデータをセーブできます。(●●には型の名前が入ります) PlayerPrefs.SetInt("キー1", 100); PlayerPrefs.SetString("キー2", "テスト"); PlayerPrefs.SetFloat("... -
【Unity 2D】カメラを揺らす
【サンプルコード】 using System.Collections; using UnityEngine; public class GameManager : MonoBehaviour { Vector3 originalCameraPos; private void Start() { // カメラの位置を取得 originalCameraPos = Camera.main.transform.position; Shake(... -
【Unity】ゲームを終了させる方法
● Unityエディター上で、終了させる場合 UnityEditor.EditorApplication.isPlaying = false; ● 実機で終了させる場合 Application.Quit(); 【サンプルコード】 using UnityEngine; public class MenuController : MonoBehaviour { public void Quit() { #i...
-
【iOSアプリ開発】Apple Developer Program・Certificate・Profileの更新手順まとめ
毎年1回だけしかやらない作業で、毎回やること忘れてしまうので、メモとして手順を残しておきます。 【Apple Developer Programのメンバーシップ更新】 期限が迫ると下の画像のように「もうすぐ期限切れるでー」と案内が来るので、メンバーシップを更新し... -
【SwiftUI】Linkビューの使い方を解説
Linkビューは、現在のビューから別の場所にナビゲートするために使用されます。 具体的には、ユーザーがタップしたときに指定した場所に遷移します。 【Linkビューの使い方】 Link("リンクテキスト", destination: URL(string: "リンク先の... -
【Swift】if文の書き方
【Swiftにおけるif文の構造】 Swiftのif文は以下のような構造を持ちます。 if 条件 { // 条件が真の場合に実行されるコード } else if { // 最初の条件が偽で、かつこの条件が真の場合に実行されるコード } else { // どの条件も満たされない場合に実行さ... -
【SwiftUI】NavigationStackの使い方を解説
NavigationStackビューは画面遷移やナビゲーションを管理するための便利な機能です。 iOS16から使えるようになったビューで、それまではNavigationViewが使われていました。 NavigationViewはiOS16から非推奨となっています。 【 NavigationStackの使い方... -
【SwiftUI】Pickerの使い方を解説
Pickerは、ユーザーがリストから選択できる選択肢を提供するためのUI部品です。 【Pickerビューの使い方】 Picker("タイトル", selection: $selectedOption) { View.tag(1) // 選択肢1 View.tag(2) // 選択肢2 View.tag(3) // 選択肢3 } Pick... -
【SwiftUI】Listの使い方を解説
Listビューは、データのリストを表示するためのViewです。 【Listビューの使い方】 List { 子View1 子View2 子View3 ・・・ } 単純にListの中にViewを列挙していくだけで、一覧を表示することができます。 struct ContentView: View { var body: some View... -
【SwiftUI】ZStackでViewを重ねる
TextやImageなどのViewを重ねて表示するにはZStackを使います。 Zは特に何かの単語の略ではなく、Z軸が奥行きを表すので、そのZが使われていると思われます。 【ZStackの基本的な使い方】 ZStack { 子View1 子View2 子View3 } ZStack内に最初に配置したビ... -
【SwiftUI】HStackでViewを横に並べる
SwiftUIにおいて、TextやImageなどのViewを横に並べるにはHStackを使います。 HはHorizontalの略で、「水平」を意味します。 【HStack基本的な使い方】 HStack { 子View1 子View2 子View3 } サンプルコード import SwiftUI struct ContentView: View { var... -
【SwiftUI】画面のサイズ(widthとheight)を取得するには?
画面の幅(width)と高さ(height)を取得するには、UIScreen.main.bounds プロパティが持つ widthとheightを参照します。 UIScreen.main.bounds.width // width UIScreen.main.bounds.height // height 【サンプルコード】 import SwiftUI struct Content... -
【SwiftUI】セーフエリアを無視して画面いっぱいにViewを表示するには?
セーフエリアを無視して画面いっぱいにViewを表示するには、ignoresSafeArea モディファイアを使用します。 このモディファイアは、指定されたエッジのセーフエリアを無視して、ビューを全画面に拡張します。 【サンプルコード】 import SwiftUI struct Co... -
【ARKit・RealityKit】ARCoachingOverlayViewを使ってガイドを出す
ARCoachingOverlayViewは、ユーザーにAR体験をよりスムーズに行うためのガイダンスや指示を提供するためのビューです。 例えば、デバイスを適切な位置に保持するようにユーザーに指示を出したり、AR空間内の特定の機能やボタンの使用方法を教えたりするの... -
【ARKit・RealityKit】画面の写真を撮ってフォトライブラリに保存するには?
画面の撮影は snapshot(saveToHDR:completion:) でできます。 import Foundation import RealityKit import ARKit let arView = ARView(frame: .zero) func captureImage() { arView.snapshot(saveToHDR: false) { image in if let image = image { // こ...
-
【Jetpack Compose】Room・Hiltのセットアップ手順
毎回、RoomとHiltの設定が複雑なので、セットアップの手順をメモとして残しておきます。 【前提】 アプリのアーキテクチャはMVVMで、次のような構成になります。 【Gradleの設定】 build.gradleファイルにRoomとHiltの依存関係を含める必要があります。 バ... -
【Jetpack Compose】色の指定方法
Jetpack Compose で色を指定する方法はいくつかあります。 このページでは一般的な方法を紹介します。 【方法】 最も基本的な方法は、Jetpack Compose の Color クラスを使って色を指定することです。 Color クラスは、RGB や ARGB フォーマットで色を表現... -
【Jetpack Compose】Toastの使い方 | 簡単なメッセージを一時的に表示させる
Toastは、簡単なメッセージを一時的にユーザーに表示するときに使う機能です。 このページではこのToastの使い方を解説します。 【Toast メッセージを表示する方法】 Toastを表示するには以下のように書きます。 val context = LocalContext.current Toast... -
【Android】画面の向きを固定する方法
画面の向きを固定するには、AndroidManifest.xmlファイルに適切な設定を追加する必要があります。 【画面を縦向き固定にしたい場合】 <activity android:name=".MainActivity" android:screenOrientation="portrait"> </acti... -
【Jetpack Compose】多言語化対応(ローカライズ)| 日本語と英語に対応するには?
海外向けにアプリをリリースするにはその国の言語に対応する必要があります。 とはいえ、全世界の言語に対応するには現実的ではないため、このページでは日本語と英語に対応したアプリの作り方を解説します。 前提 デフォルト言語を英語として、端末の言語... -
【Jetpack Compose】Scaffold Composableの使い方
Scaffoldコンポーザブルは、マテリアルデザインに基づいた基本的な画面構造を提供するUI部品です。 Scaffoldを使うことで、アプリの画面の構築を簡素化でき、一般的なUIパターンである「アクションバー」、「ナビゲーションバー」、「フローティングアクシ... -
【Jetpack Compose】TabRowの使い方
TabRowは、タブバーを作成するための便利なUI部品です。 【TabRowの使い方】 TabRowを作成するには、TabRowとTabのコンポーネントを使用します。各タブは、表示するテキストと選択状態を指定する必要があります。 var tabIndex by remember { mutableState... -
【Jetpack Compose】CircularProgressIndicatorの使い方 | ローディングを表示
CircularProgressIndicator は、ローディングや進捗状況を示すために使用されるUI部品の1つです。 これを使うことで、円形のインジケーターを表示してユーザーに作業の進行状況を示すことができます。 【CircularProgressIndicatorの基本的な使い方】 単に... -
【Jetpack Compose】ViewModelの使い方
【ViewModelの役割】 ViewModelは、UIの状態を保存し、ビジネスロジックとUIの間でデータのやり取りを担当します。 Jetpack ComposeでViewModelを使うことで、UIの状態を保持し、画面の状態が変化してもデータが失われないようになります。 ViewModelがな... -
【Jetpack Compose】画面遷移のやり方
Jetpack Composeには標準で画面遷移の機能がないため、画面遷移を実現するにはパッケージを導入する必要があります。 【画面遷移のためのパッケージを導入】 Navigation Composeというライブラリを使用します。 build.gradleのdependencies内に以下を追加... -
【Jetpack Compose】AlertDialogの使い方
AlertDialog は、ユーザーにメッセージを表示し、ユーザーの操作を促すダイアログを作成するために使われます。 このページでは。AlertDialog の基本的な使い方について解説します。 【AlertDialogの書き方】 AlertDialog( onDismissRequest = { /* 画面の... -
【Jetpack Compose】TextButton Composableの使い方 | テキストを含むボタンを作成する
TextButton コンポーザブルは、テキストを含むボタンを生成するためのUI部品です。 【TextButtonの使い方】 TextButton コンポーザブルを使ってボタンを表示するには、次のように書きます。 TextButton(onClick = { /* ボタンがクリックされたときの処理 *...
-
【Flutter】CupertinoAlertDialogにテキストフィールドを組み込む方法
CupertinoAlertDialog に TextField を追加するには、CupertinoAlertDialog の content プロパティに CupertinoTextField を埋め込むことで実現できます。 【方法】 CupertinoAlertDialog( content: CupertinoTextField(), ); 必要に応じてtitleやactions... -
【Flutter】iOS風のAlertDialogを表示する方法:CupertinoAlertDialog
FlutterでiOS風のAlertDialogを表示するには、CupertinoAlertDialogウィジェットを使用します。CupertinoAlertDialogはiOSスタイルのダイアログを提供し、デフォルトでiOSのデザインガイドラインに従います。 【CupertinoAlertDialogの使い方】 CupertinoA... -
【Flutter】スワイプで前の画面に戻る機能を無効にする方法
スワイプで前の画面に戻る機能を無効にするにはPopScope ウィジェットを使います。 【実装方法】 PopScope( canPop: false, // false にすることで無効になる child: Scaffold() ) PopScopeが持つプロパティcanPopをfalseに設定することで、スワイプで戻る... -
【Flutter】Androidビルド時に「java.lang.OutOfMemoryError: Java heap space」エラーが出たときの対処方法
「java.lang.OutOfMemoryError: Java heap space」エラーはGradleがFlutterアプリのビルド中にメモリ不足(Java heap space)に直面していることを示しています。 【す】 android/gradle.properties ファイルを開き、org.gradle.jvmargsの設定を変更し、Gr... -
【Dart】命名規則まとめ:変数名・クラス名などの付け方のルール
命名規則は、コードの可読性を向上させ、他の開発者がプロジェクトを理解しやすくするために重要です。 以下に、Flutterプロジェクトで一般的に推奨されるDart言語の命名規則を説明します。 以下の規則は必ず従わなければいけないというものではありません... -
【Dart】DateTimeから曜日を取得する方法
DateTimeから曜日を取得するには、weekdayプロパティを使用します。 weekdayの値は、月曜日が「1」、火曜日が「2」、・・・日曜日が「7」のように割り振らているので、この値を基に曜日を算出します。 【DateTimeの値から曜日を算出するコード】 次の例... -
【Flutter】WebViewの使い方
Flutterアプリ内でWebコンテンツを表示するためにはWebViewを使います。 このページでは、そのWebViewを実装する方法を紹介します。 【必要パッケージのインストール】 pubspec.yaml で webview_flutter パッケージを追加します。 dependencies: flutter: ... -
【Flutter】「A Firebase App named “[DEFAULT]” already exists」というエラーが出たときの対処方法
このページではiOSビルド時にUnhandled Exception: [core/duplicate-app] A Firebase App named "[DEFAULT]" already existsというエラーが発生した場合の対処方法を紹介します。 【対処方法】 GoogleService-Info.plistをプロジェクトから一旦削除します... -
【Flutter】DateTime型の値をSharedPreferencesに保存する方法
SharedPreferencesに保存できる型は限定的なので、DateTime型の値を保存するには型を変換して保存する必要があります。 このページではString型に変換して保存する方法、保存した値を取り出す方法を紹介します 【保存処理:DateTime型を文字列に変換して保... -
【Flutter Web】url_launcherを使わずにリンクを作成する方法
Flutter webでurl_launcheパッケージがうまく効かないことがあり、別の方法で対応できたのでそのやり方を紹介します。 【Flutter webアプリでリンクを作成するやり方】 まず、webディレクトリ内のindex.htmlファイルの<head>セクション内に次のスクリプ... -
【Flutter】iOSアプリのアップロードエラー:App.framework does not support the minimum OS Version specified in the Info.plist. の対処法
ある日、FlutterのiOSアプリをアップロードしようとしたら、次のようなエラーが出てアップロードできませんでした。 Invalid Bundle. The bundle Runner.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.pli... -
【Flutter】TextScaler(旧TextScaleFactor)を無効にする方法
【TextScalerとは?】 TextScalerは端末の設定で変更した文字の大きさをアプリ内にも反映させる機能です。 端末の設定で文字を大きくしたり小さくしたりすると、アプリ内の文字サイズも変わるため、レイアウトが崩れてしまう場合があります。 Flutterでは...