20210502のAndroidに関する記事は6件です。

【Unity】Androidのアダプティブアイコンを設定しよう!

Unityで出力するとAndroidのアイコンが微妙な見た目になることがあるのですが それは「Adaptive Icon」なるものを設定できていなかったためでした。 今回は備忘録として設定方法などをお伝えしたいと思います。 本文はこちらです https://tedenglish.site/unity-android-adaptive-icon/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Androidのインストール

はじめに Windows10におけるAndroid開発の導入についてまとめる 導入の流れ Android Studioのダウンロード サイトに移動してDOWNLOAD ANDROID STUDIOを選択 インストール ダウンロードしたファイルを実行 Nextを選択 1. インストールするコンポーネントを選択 実機を使用するため、AVDを使用する想定はしていないが使用することができるように選択しておく 1. インストール先のパスを選択 任意のパスを選択する 1. スタートメニューの選択 1. 完了ボタンの選択 Android Studioの初回起動時の設定 設定のインポート Googleへのデータ共有設定 Nextを選択 インストールするコンポーネントなどの設定 一般的な環境で開発できればよいのでスタンダードを選択 UIテーマを選択 個人的には黒が好き 設定の確認 誤りがあれば修正
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

備忘録_スマホアプリ開発の現場に入る前に知っておくとよいこと。

はじめに 自分はWeb系のエンジニアです。 スマホアプリ開発経験は0です。 今回、Webの技術でスマホアプリを開発する現場に常駐することになったので、 自分で調べたことをまとめます。 自分のアウトプット用なのと、 同じ感じの人の助けになればと思います。 理解が間違っているところがあれば、ご指摘頂けると嬉しいです。 基礎知識 スマホのOSはAndroidとiOSがある。 日本ならiPhoneが多いけど、iPhoneだけ対応ってことは少ない。 Webと違いリリースは、サーバにデプロイして完了とはならない。 androidならPlayストア、iOSならApp Storeにアプリを公開する。 そのため、GoogleやAppleなりの審査がある。 つまるとこ、android用、iOS用で作らないといけない。 クロスプラットフォームな開発できるFWでも、プログラムは共通だけど、 リリースする際にAndroidとiOSで、それ用にビルドしてあげないといけない。 基本、Android StudioとXcodeは必要って認識で大丈夫だと思う。(現場によって異なるけど) Android スマートフォン ユーザがアプリをスマホに入れるなら基本的にPlayストアからアプリをインストールする。 Playストアからアプリを配布するにはGoogle Play Developerに登録が必要。 Playストアにアプリを公開するには? Google Play ConsoleというPlayストアへのAppの提出、Appの管理ができるサービスがある。 Google Play Consoleで以下を実施。 1. アプリ情報を登録 2. apkファイルをアップロード(※apkファイルではなくAndroid App Bundleを推奨) 3. レーティングを設定する 4. 価格と販売/配布地域を設定する 5. Appを審査へ提出 6. App ステータスの確認と審査で出た問題を解決する 7. 審査が承認されたらPlayストアに公開される。 ※Android App Bundleを推奨。 2021年8月より、Google Playでの新規アプリの公開はAndroid App Bundleで行う必要がある。 アプリのコンパイル済みコードとリソースがすべて含まれた公開形式。 APKの生成と署名はGoogle Playが行う。 Google PlayはApp Bundleから、デバイス設定毎に最適化したAPKを生成、配信する。 それにより、個々のデバイスでAppを実行するのに必要なコードとリソースだけがDLされる。 Developerは、多様なデバイスのサポートを最適化する為に複数のAPKをビルド、署名、管理する必要がない。 apkファイル? apk Android Application Packageの略。 ZIP形式でアーカイブファイルの一種。 拡張子は.apk 決まった手順でAndroid端末にアプリをインストールできるファイル。 ビルド後にできるファイルと思えば大丈夫。 作成方法(ビルド方法)はコマンドかAndroid Studioを利用。 僕がいる現場は、ビルドする時だけAndroid Studioを使っている。 コマンドでするにもAndroidのsdkが必要だから、Androi Studioはインストールした方が楽だった気がしますが、 もっと楽な方法はあるかもしれません。 iPhone ユーザがアプリをiPhoneに入れるならApp Storeからアプリをインストールする。 App Storeからアプリを配布するにはApple Developer Programに登録が必要。 App Storeにアプリを公開するには? App Store ConnetというApp StoreへのAppの提出、Appの管理ができるサービスがある。 App Store Connectで以下を実施。 1. 契約書に同意し、税金と銀行口座情報を入力する。 2. ユーザを追加して役割を割り当てる 3. Appを追加してビルドをアップロードする 4. 価格および配信状況を設定する 5. Appを審査に提出する。 6. App ステータスの確認と審査で出た問題を解決する 7. 審査が承認されたらApp Storeに公開される。 細かいところは、Appleの公式のガイドラインで確認してください。 少し混乱したのが、Appleの場合、Appをアップロードするのにアーカイブファイルを作成してアップロードするみたいな方法は一般的ではないみたい。 XcodeからGUIでビルドを実行して、そのままApp Store Connnectにアップロードできる。 アーカイブファイルを作成してアップロードする方法もあるようです。 開発フロー 企画 ↓ 要件 ↓ 設計・実装 ↓ ビルド ↓ テスト ↓ 審査 ↓ リリース 上記の流れで開発していく。 企画、要件、設計・実装の流れはWEBとさほど変わらない。 大きく異なるのはビルドとテスト。 自分はクロスプラットフォームな開発ができるFWを使って開発している現場だが、 ビルドをandroid用、iOS用でビルドする。 このビルドが大変、混乱した。 色々な方法があると思うが自分がいる現場は以下。 Android Android Studioでapkファイルを作成する。 adb(Android Debug Bridge)コマンドがかかれたbatで実機にインストールする。 iOS Xcodeでプロジェクトを開く。(FWでios用のプロジェクトは作成済み) Xcodeから実機にインストールする。 テスト 実機で動作確認を行う。 デバックは、USBでPCに接続して、下記で確認を行う。 android Chrome Inspector iOS Safari Inspector おわりに ざっくりと当たり前のことを書きましたが、OSによってビルド方法が異なる、審査っていう工程があるっていうのを認識して その周りを学習しないといけないです。 IonicやReact NativeとかはWebが分かるなら大丈夫だよーっていうのを信じたら痛い目にあいました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Flutter】TextFormField, TextField onChanged使用時のカーソル位置

発生していた不具合 TextFormFieldに入力するたびにカーソルの位置が最初に戻ってしまう現象が発生していました。 原因 入力ごとに毎回初期値が変更されたとみなされ、カーソルの位置が初期状態に戻ってしまっていた。 修正方法 初期値入力時に、テキスト情報に併せて、offset情報も渡す。 コード例 controller: TextEditingController.fromValue( TextEditingValue( text: initialString ?? "", selection: TextSelection.collapsed(offset: initialString?.length ?? 0), ), ), 実際の修正例
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Flutter】TextFormField, TextField onChanged使用時のカーソル位置が最初に戻ってしまう不具合対応

発生していた不具合 TextFormFieldに入力するたびにカーソルの位置が最初に戻ってしまう現象が発生していました。 原因 入力ごとに毎回初期値が変更されたとみなされ、カーソルの位置が初期状態に戻ってしまっていた。 修正方法 初期値入力時に、テキスト情報に併せて、offset情報も渡す。 コード例 controller: TextEditingController.fromValue( TextEditingValue( text: initialString ?? "", selection: TextSelection.collapsed(offset: initialString?.length ?? 0), ), ), 実際の修正例 参考記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

掌田 津耶乃著『Android Jetpack プログラミング』の歩き方(Section3-1)

1. はじめに  掌田 津耶乃著『Android Jetpack プログラミング』(以下、本書と言う)で勉強しています。この本は、著者が記述しているように入門書ではないようです。それゆえ、本書をしっかりと読み込んでいないと、記載されているソースコード通りに写経しても、エラーで弾かれることがあります。本レポートでは、「『Android Jetpack プログラミング』の歩き方」と題して、ソースコードどうりに写経してアプリが正常に動くようにするための注意点をレポートします。記述や考え方などに誤りがあれば、ぜひご教示いただきたいと思います。 2.本書が求めている動作環境の条件  本書が要求している動作環境の条件は、AndroidStudio4.0です。一方で2021年5月現在の最新のAndroidStudioは、バージョンは4.1.3(for Windows 64-bit)です。バージョン4.0と4.1の違いのひとつに、Kotlin-Android-Extensionsがデフォルトでは使えなくなり、ViewBindingの使用を推奨し始めたことです。Kotlin-Android-Extensionsについては本書p61に、またViewBindingについては本書p57に記述されています。 3.本記事を記述した際の動作環境の紹介  私がこの記事を書いた際の動作環境は次のとおりです(AndroidStuidoのHelpメニューのAboutからコピーしました)。 Android Studio 4.1.3 Build #AI-201.8743.12.41.7199119, built on March 11, 2021 Runtime version: 1.8.0_242-release-1644-b01 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 10 10.0 GC: ParNew, ConcurrentMarkSweep Memory: 1237M Cores: 8 Registry: documentation.show.toolbar=true, ide.new.welcome.screen.force=true, external.system.auto.import.disabled=true Non-Bundled Plugins: org.jetbrains.kotlin 4.本書のソースコードが動くようにするために  本書の第3章のSection3-1(p142以降)に記述されているソースコードが動くようにするために、以下の部分を変更しました。なお、本書の著作権に配慮して、変更や追記した部分のみを記述します。また途中、変更を加えていない部分は“// ・・・”と記述したり、或いは何らかの方法で隠します。 4.1 リスト3-3 MainActivityクラスで生じる不具合  本書p146リスト3-3のMainActivityクラスを写経すると次の図の部分でエラーを生じると思います。これは、このプロジェクト(このソースコード)がKotlin-Android-Extensions(以下、KAE)を利用しているためです。(これは、import kotlinx.android.synthetic.main.activity_main.*の部分で読み取れます。当初MainActivity以下のソースコードをまじめに手打ちしていて、import文はAndroidStudioの言うとおりインポートしていたので、このKAEのためのクラスをインポートをせずにいました。そのためエラーの原因がわからず、とりあえずfindViewByIdを利用していました。それが//でコメントアウトした部分です。この記事を書いている際にこのKAEのためのインポート文が不足していることに気づき、本書のリストどおりに動かない本当の原因がわかりました。)  さてこのimport文を追記しただけでは、KAEは機能しません。KAEを機能させるためには、本書p61のリスト1-13のとおりbuild.gradle(Module:app)ファイルのプラグインに追記が必要になります。但しAndroidStudio4.1のbuild.gradleの記述方法が変更されたようで、次のように記述しました。 // build.gradle(Module:app) plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' // 追記 } // ・・・  build.gradleを変更したら、忘れずにAndroidStuidのエディタ右上の「SyncNow」をクリックしましょう。  ちなみに本書には、リスト3-3のMainActivityクラスに対応するレイアウトファイル(activity_main.xml)が記述がなかったので、以下に記述しました。 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="228dp" android:text="Hello World!" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/text1" app:layout_constraintVertical_bias="0.346" /> </androidx.constraintlayout.widget.ConstraintLayout> 4.2 リスト3-6 MainActivityクラスで気付いたこと  もしも、本書p152の「ビューモデルを使わないと?」の項目を別のプロジェクトを作って確認しようとするならば、第4.1項と同様にbuild.gradle(Module:app)ファイルに追記の処置が必要になります。  蛇足ですが、リスト3-6にあるfun to_s(ob:Person)メソッドの行ですが、なぜここに記述されているのでしょうか??fun updateData()メソッドの中で、item.to_s()を呼んでいますが、これはPersonクラスのオブジェクト不随しているメソッドを呼んでいるので、リスト3-6にあるfun to_s(ob:Person)メソッドの行は不要ではないでしょうか?(今のところ、ここに有っても害はなさそうですが、、、後で使うのかな?) 5.終わりに  本書はAmazonのブックレビューにもあるように、現在発売されているAndroidプログラミングの教科書の中では、少しレベルの高い内容になっていると思います。(金田著「はじめてのAndroidプログラミング」、斎藤著「Androidアプリ開発の教科書」、山田著「Androidアプリ開発」などより、レベルが高いと思います。)それだけに私のような初心者では、ソースコードの行間に書かれた意味(エラーが起きた時の対処方法)が解からないのが悔しくてなりません。(発売当初すぐに、生きこんで本書を購入しましたが、第2章のComposeで躓き、6ケ月以上書棚に寝かせていました。最近、ViewModelについて知りたくなり、また本棚より引っ張り出してきました。またComposeについては、折を見て改めて勉強したいと思います。どうもComposeは進化の途中のようですね。どなたか本書のConposeの項目をクリアした方がいたら、ぜひどのようにすれば動くようになるかレポートしていただければありがたいです。--->ここにありました。さすがQitta!勝手にリンクします。)  今後引き続き、本書を写経するにあたり、気づいた点をレポートしたいと思います。 以上、
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む