diadia

興味があることをやってみる。自分のメモを残しておきます。

androidアプリ開発

Fragmentの画面が表示されない状況に遭遇した

ベースとなる画面にリサイクラービューを使って表示する。 そして画面遷移先で入力するためのキーボードを表示させる。その状態でベースのアクティビティに戻るとリサイクラービューを始め他のViewもろとも表示されない事態に遭遇した。いわば、レイアウトフ…

android ライフサイクルについて考え、想像するだけ

ライフサイクルはメモリ不足になるとonResumeを通ることを予期していたのにonCreateから始まることがあるようだ。 もしかするとアクティビティでフラグメントを起動して、そこから他のアクティビティに遷移する。遷移先からバックで戻ったり、アクティビティ…

Django Test retrofitが送信するデータを再現する

内容 djangoの単体テストを実装する際にAndroid端末が送信するデータ形式を再現できなければ、単体テストの効果が得られない。 したがって最初にretrofitのpostメソッドの形式を確認し、それをそれぞれどのようにdjango(python)で再現すればよいかをメモして…

android facebookシェアのメモ

前提 intentやShareCompatを使ったシェア方法を諦め、facebook SDKを使ってシェアを行う。 メモ とりあえず使うにはコーディングの他に準備がある。 まずFacebookに開発者の登録が必要 facebookにアプリの登録が必要 -> appのidがandroidのマニフェストで記…

WebViewの使い方

コンテンツ ドキュメント 実装方法 サンプルコード 1.ドキュメント WebView でのウェブアプリの作成 | Android デベロッパー | Android Developers 2.実装手順 レイアウトでアプリに WebView を追加 <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> val myWebView: WebView = findViewById(R.id.webview) m</webview>…

DRFとretrofitの関係(Bodyに関して)

話したいこと drfのrequest.dataの内容はfieldかbodyかで違いが出る話をしたい。 django rest frameworkを使ってアンドロイドからデータを受け取る場合にはrequest.dataを使う。そしてこのrequest.dataの内容がretrofitのインターフェースメソッドの記述の仕…

Kotlin GoogleMapPlatfotmのtoolbarを削除する

どれ? toolbarの特徴 toolbarはデフォルトで表示され、toolbarをタップすると他のアプリが起動してしまう。 消したい場合はドキュメントに従ってUiSettings.setMapToolbarEnabled(boolean)を実行すれば良い。 サンプルコード override fun onMapReady(googl…

FirebaseCloudMessagingによるプッシュ通知を受信してもアプリを起動できない件

理由がわからない。 サンプルで作ったアプリはプッシュ通知をタップするとアプリが立ち上がったけど、今のアプリは立ち上がらない。 Firebase Notifications は、受信側アプリがフォアグラウンド状態であるかバックグラウンド状態であるかによって、動作が異…

スワイプでデータ更新をする

SwipeRefreshLayoutを使えば良い事がわかった。 GlidやLinearの親としてSwipeRefreshLayoutを使う。 参考ドキュメント スワイプでの更新をアプリに追加する | Android デベロッパー | Android Developers 参考ドキュメントによるとsupport.v4を使うことにな…

RecyclerViewでスクロールダウンしてから上に戻ると表示がおかしくなる件

リサイクラービューで上から下にスクロールする時には適切に表示されているのに、 一度下までスクロールして上に戻ると、適切に表示されていたものが変な状態で表示される件に遭遇した。 具体的に自分のケースでは、if文に合致したあるアイテムはグレースケ…

Glideの使い方

内容 普通にGlideを使いたい場合 -> Glideを使う場合の諸設定 GlideAppを使いたい場合 -> GlideAppを使いたい場合の諸設定 Glideを使う場合の諸設定 gradleに以下を設定 dependencies { implementation 'com.github.bumptech.glide:glide:4.11.0' annotation…

Android端末の通信中にクルクルを表示したい

通信中にクルクルを表示するための機能はProgressDialogとProgressBarがあるようだ。 ProgressDialogはAPI26で非推奨になるらしい。 ProgressBarを使うことになるのか? 2種類あるみたい。 Determinate ProgressBar Indeterminate ProgressBar

ギャラリーのデータを引っ張るには?

参考資料 androidドキュメント ストレージ アクセス フレームワークを使用してファイルを開く | Android デベロッパー | Android Developers わかりやすい アンドロイド - SAF(Storage Access Framework)にファイル読み書きする方法 | codechacha [Kotlin] R…

Android カメラで撮った画像に関する知見をまとめる

フルサイズの写真を保存するには? Android カメラアプリは、保存先のファイルを指定すると、フルサイズの写真を保存します。 と書いてあるが、これは( 画像データが入っていない空の )ファイルを渡すと、フルサイズの写真を保存することができる、というこ…

Android開発のためのメモ

Android開発入門時に読んだ本 基礎&応用力をしっかり育成!Androidアプリ開発の教科書 Kotlin対応 なんちゃって開発者にならないための実践ハンズオン androidアプリ開発のメモ 良さそう後で読む https://dev.classmethod.jp/smartphone/android/build-firs…

CameraXについての情報

cameraXというものを認識した。 コレが何であるか情報を集める。 資料 1. コードラボ https://codelabs.developers.google.com/codelabs/camerax-getting-started/#0 2. KotlinによるCameraXの実装例の資料 【kotlin】CameraXでAndroidカメラを実装してみた …

JSON形式のStringデータをJSONObjectに変更する

なんか良くわからないけど、retofitで受け取ったJSONオブジェクトはJSONとしてStringデータとなってしまっているらしくStringデータからJSONObjectに変更したいと思った。 pythonだったらjsonモジュールを使ってdictからjson,jsonからdictに変更が簡単にでき…

GeoJsonデータをGoogle Mapにレンダリングする

コンテンツ GeoJsonを有効利用したいけど解決策はあるか? インストール 具体的な使用イメージ 色を変える 1. GeoJsonを有効利用したいけど解決策はあるか? GeoDjangoを使う場合にgeometry型のデータをGeoJsonとして出力できる。 以下のように簡単に。。。 fr…

GoogleMapsPlatformを使ってポリゴンを描画

コンテンツ ポリゴンを描画しての感想 markerのmap描画 polygonのmap描画 1. ポリゴンを描画しての感想 ポリゴンの描画に関して難しいところは無かった。 基本的にmarkerをmapに描画する要領でポリゴンデータを描画すれば良い、と捉えておけば良いだろう。 2…

緯度経度情報を取得する(GoogleMapsのタップから)

GoogleMapsPlatformからマーカーをセットしてそのセットしたマーカーから座標値を取得する。 この方法を調べてみる。 まずGoogleMapsPlatformをタップイベントに反応させることについて。 GoogleMapsPlatformのeventsという項目にイベントに関するドキュメン…

効率よく開発を進めるために。DRFとAndroid(Kotlin)を前提に

どこに注意してコーディングをすすめるべきか。 一番重要な要素は、Androidアプリの各画面でどのような情報が必要か明らかにすることである。 Djangoにおいて必要な情報を制限なしに出力する事ができる。したがってKotlinがボトルネックとなる。そのためAndr…

djangoにRESTAPI(DRF)を実装する まとめ

内容 公式ドキュメント DRFの基本的な知識 DRFの関連記事 1. 公式ドキュメント 公式ドキュメント:Home - Django REST framework 2. DRFの基本的な知識 DRFはAPIを扱うフレームワーク djangoがwebフレームワークに対してdjango rest framework(DRF)はrestful…

DRFでGeneric ForeignKey を扱う

GenericForeignKeyの扱い方はDRFドキュメントにある Serializer relations - Django REST framework このドキュメントの解釈を行う。自分が作った例は時間があれば、Githubにあげておく。 class TaggedItem(models.Model): """ Tags arbitrary model instanc…

DRFでForeign Keyの値を参照するやり方

参考 Django REST Framework メモ ::ForeignKeyでつながっている別モデルをくっつけてひとつのJSONとしてWebAPI出力する - Qiita python - Retrieving a Foreign Key value with django-rest-framework serializers - Stack Overflow とりあえず後で試す。

android studio 設計で気づいたこと

あるフラグメントにクエリの結果を一覧表示する場合において、フラグメント内でクエリ結果を取得する方法とフラグメント起動前にクエリ結果を取得しフラグメントに渡すという方法が考えられる。 このフラグメントの起動に関してベストプラクティスが分かって…

エラー:java.lang.RuntimeException: Parcelable encountered IOException writing serializable object

エラー内容 java.lang.RuntimeException: Parcelable encountered IOException writing serializable object エラーが出た状況 独自のモデルを作成し、そのインスタンスをintentを通じて起動するActivityへ渡す際にエラーが生じる。 また独自モデルにはSeria…

UriからFileオブジェクトを生成する

https://stackoverflow.com/questions/2975197/convert-file-uri-to-file-in-android content://hogehoge コンテントスキームがついたデータにアクセスする場合には、ContentResolverを使ってアクセスするようだ。

画像をスマホから呼び出す

画像を呼び出すためのギャラリーの起動 ギャラリーを起動して画像をもとのアクティビティにわたす必要があるから、startActivityForResult()が必要。 startActivityForResult(intent, REQUEST_CODE) ギャラリーを起動するためのインテントを設定。 val inten…

retrofitでmultipart通信 複数の画像を送信する

通常のultipart通信に何を変えれば良いか 変えるべきはインターフェースの関数の引数に画像部分を増やすこと。そしてMultipartBody.Partオブジェクトを贈りたい画像の枚数分生成すること。 これが一枚画像を送る場合と異なることだ。 Interface //Itemオブジ…

Django Rest FrameworkにRetrofitで送信する(multipart編)

やりたいこと django rest frameworkをバックエンドにAndroid端末からデータを送信する。その結果、特定のModelのインスタンスを生成する。 条件: 特定のModelは、ImageFieldを含むクラスである。 特定のModelインスタンスを生成するためにmultipart通信を…