diadia

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

kotlin

バックエンドでKotlinをさわる

お世話になった本は以下。 入門!実践!サーバーサイドKotlin (技術の泉シリーズ(NextPublishing)) | 横山 恭大 | 工学 | Kindleストア | Amazon androidアプリケーションでKotlinは使っていたけれども、主戦場にしたいバックエンドでKotlinが使えてないの…

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

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

言語横断整理 python, kotlin, javascript

配列、リスト オブジェクトの生成 pythonにはListがある。 foods = ["りんご", "ぶどう", "すいか", "なし"] foods = list("りんご", "ぶどう", "すいか", "なし") kotlinにはList, Array, ArrayListがある。 var foods:List<String> = listOf("りんご", "ぶどう", "</string>…

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

言語Kotlinのメモ

Kotlin入門時に読んだ本 書籍名 リソース Kotlin入門までの助走読本 https://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view 変数について 変数は2種類ある。 varとvalである。valを使う場合には変数の再代入ができない。 配列の変数を定義する…

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…

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通信を…

Bottom Navigationを実装する試み

参考 AndroidアプリへのBottom Navigationの導入 - nextbeat-engineering - Medium 【Kotlin】BottomNavigation(下タブ) + Navigationを試してみる - Qiita BottomNavigationView | Android Developers 記事を見て得た実装するイメージ まずBottom Navigat…

Android リモート通知機能について

通知を送信する方法 通知はfirebase コンソールを操作して送信する方法とwebアプリから送信する方法、そしてHTTPリクエストを直接投げて送信する方法がある。 通知のデバイストークンの有効性を確認をしたい等の場合にはfirebaseコンソールから送信してandro…

通知の実装について

プッシュ通知の種類 プッシュ通知には、ローカル通知とプッシュ通知の2種類がある。 ローカル通知はアプリ起動中に何らかのイベントによりプッシュ通知が起きる。 リモート通知はfirebaseで通知を行う旨を受け、firebase自身がandroidに通知を送る。 例えば…

緯度経度情報を取得する(LocationSevicesを使う)

アンドロイド端末から座標データを取得する 必要な要素__パーミッション なんのクラスメソッドを使って取得するのか? ドキュメントの位置はどこか? 座標データの取得方法 概要 パーミッションをマニフェストファイルに追記する。 座標データを取得するには…

カメラを使うアプリの実装方法

カメラ使用にはパーミッションが必要である <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 当初カメラを使う場合にはandroid.permission.CAMERAのみを使えば使えると思っていたが、それは間違いであった。カメラアプリで撮影した画像を保存すること、また保存するディレクトリを作成する際にandroid.per</uses-permission></uses-permission>…

FileProvider Failed to find configured root that contains のエラーが出る場合

FileProviderを使って以下のエラーが生じる Failed to find configured root that contains 参考 Android: FileProvider Issue: Failed to find configured root that contains ... · Issue #218 · react-native-community/react-native-share · GitHub 自分…

GoogleMapにデータを表示する

記事概要 この記事では2種類のGoogleMapsを使った実装方法のメモを残す。 一つは暗黙的インテントによるGoogleMapsアプリの起動例。 もう一つは、GoogleMapsPlatformを利用した自前アプリへの組込例である。 コンテンツ 暗黙的インテントによるGoogleMapsア…