くま's Tech系Blog

基本的には技術で学んだことを書き留めようと思います。雑談もやるかもね!

Kotlin

Kotlinのオブジェクト式について

個人的な意見ですが、オブジェクト式や無名オブジェクトを理解するのに若干苦労したのでまとめようと思います 合わせて、無名関数も苦労したので合わせて記載しようかと思います オブジェクト式とは? オブジェクト式では無名オブジェクト(無名クラス)の定義…

RecyclerViewのGridLayoutについて

GridLayoutはリストを格子状に並べるという形式です 以前RecyclerViewについての記事を投稿した際にLayoutManagerにGridLayoutManagerというパターンがあるというのを記載しています kumaskun.hatenablog.com 今回はGridLayoutManagerについて少し深掘りしよ…

AndroidでWebViewを使ってみる

今回はAndroidのWebViewについてです iOSと違う部分もあるので見ていきましょう! Webページを表示させる Webページを表示させるだけであれば簡単にできます 前提としてAndroidManifest.xmlでインターネットの権限の設定を行ってください <manifest ... > <uses-permission android:name="android.permission.INTERNET" /> </manifest> レイアウトファ…

ExpandableListViewを使ってみる

Androidで開閉式のアコーディオンテーブルを作成する際にExpandableListViewを使います あまり使う機会がなく記事もあまりなさそうなので、記事にしようと思います ExpandableListViewを使う手順 ExpandableListViewをアプリで使う手順は次の手順で行います…

FragmentManagerについて

今回はFragmentManagerについて調べたことをまとめようと思います FragmentManagerをどのインタンスから作成するかを意識しないとうまく表示できなかったりと想定外なことが起こるので注意が必要です (今回は指定違いで想定外なことが起こっていました) Frag…

RecyclerViewについて

今回はRecyclerViewについてです Androidでリスト形式のデータを表示させる場合にはListViewやRecyclerViewなどがあると思いますが、複雑なリストが作成できたりする点でRecyclerViewを選択することがほとんどだと思います ただ、当たり前のように使っていて…

Realmを使ってみよう(Android編)

今回はRealmをAndroidで使うやり方について書こうと思います Realmの大まかな説明などは前回の記事をみてください Realmの導入 まずはRealmを使えるようにします build.gradle(app)で下記設定を追加します plugin { id `realm-android` } そして、build.grad…

ViewPager2とCardViewでカルーセル表示を行う

QiitaのAndroid Advent Calendar 2021の23日目の記事です 他の方も素晴らしい記事を投稿しているので、ぜひこちらからご覧ください! 今回はCardViewのカルーセル表示についてです カルーセル表示とは横にスライドして次のデータを表示させるものです 下記の…

スコープ関数について

kotlinにはスコープ関数というものがあります。 あるインスタンスに対して、連続して処理をするような場合、スコープ関数を使えばコードを簡潔にすることができます。(Lamba形式で処理をおこないます) スコープ関数にはlet・run・with・apply・alsoの5種…

Androidのスレッドについて

今回はAndroidのプロセスやスレッドについてまとめようと思います。 最近は非同期処理でCoroutine などが出てきたおかげで非同期処理が簡単にできるようになりました。 ただ、Coroutine などを理解する前にプロセスやスレッドについて理解する必要があると思…

Retrofitの基本的な使い方

今回はRetrofitの基本的な使い方について書きたいと思います。 Android開発でAPI連携を行う場合に必ずと言っていいほど使うと思います。たまにハマってしまうので、まとめようかと思います。 Retrofitは、APIから取得するJSONデータを、オブジェクトにしてア…

kotlinのフォルダ名について

小ネタです val binding: ActivityTaskEditBinding = DataBindingUtil.setContentView(this, R.layout.activity_task_edit) val editViewModel = ViewModelProviders.of(this).get(EditViewModel::class.java) binding.editViewModel = editViewModel 上記ソ…

ButtonNavigationを使ってみる

最近アプリを使っていると、下の方でメニューを切り替えるヤツをよく見ます。 ドローワーあんまり使わないのかなあと思いながら調べてみるとButtonNavigationっていうのを知りました。(今更感.....) 大変なのかやってみました。 結論、まったく大変ではない…

再起動をadbコマンドで実行する

Androidで開発していて、PCを実機につないで、再起動を確認するときに実際に再起動してしまうと実行が消えてしまいますよね? どうやらADBコマンドで実際に再起動せずに再起動を再現できるみたいなので、やってみました。 ただ、やってみると意外にハマった…

Androidでグラフを作ってみる

グラフをアプリの中に表示させるとき、調べてみるとMPAndroidChartを使う方法があるみたいで、簡単なサンプルを作って試してみました。 今後も使いそうなので、手順を残そうかと思います。 ①ライブラリの導入 まずはMPAndroidChartライブラリを導入します。 …

レッツMVVMパターン

以前、DataBindingを使ってみて、その延長でMVVMパターンを使ってみました。 おそらく今後も使うと思うので、手順を残したいと思います。 ベースは下記の記事の実装を使います。 DataBindingを使ってみる 今回はListViewで行います。 ModelViewは 一覧に表示…

DataBindingを使ってみる

listviewの表示をDataBindigを使ってみることにしました。 もともと、android.R.layout.simple_expandable_list_item_2というオープンソースを使っていたのですが、カスタマイズできないのと、カスタマイズするならDataBindingを使ってみようと思ったのが、…

Espresso使用時の個人的注意ポイント

Android開発でテストを行おうと思い、Espressoを実行しようと思ったら実装とテストのバージョン違いでつまずいたので、まとめたいと思います。 テストを実行しようと思うと下記エラーが発生しました。 Conflict with dependency 'com.android.support:suppor…

ナビゲーションドローワーのUIテスト

EspressoでUIテストを実施していて、ナビゲーションドローワーがある場合に少しつまずいたので、残したいと思います。 dependencyの追加 ナビゲーションドローワーのアクションはespresso-contribのライブラリに入っているので追加しました。 その時、バージ…

非同期でのUIの取り扱い

非同期でUIの更新を行うときに気にしないといけないことが多いですよね 今ではRxjavaを使えば、あまり気にすることはないんですが、AsyncTaskLoaderを使う場合は、気にしないといけません。 私も一部分で、AsyncTaskLoaderを使っていて、罠にはまりました。 …

Retrofitでxmlの要素の値を取得する

Retrofitでxmlの要素を取得するためにEntityを定義しました。 初めて行うと意外に苦戦することが多いので、まとめます。 今回対象のxmlは以下になります。 <rss version="2.0"> <channel> <title>××××××××××××××</title> <link>×××××××××××××××</link> <description>××××××××</description> <lastBuildDate>××××××</lastBuildDate> // itemがリストになっている <item> </item></channel></rss>

RecyclerViewを使ってみた

ListViewに比べてRecyclerViewの方が使い勝手がいいので、試しに使ってみました。 カスタマイズできるのがいいですね! ①レイアウトの作成 まずは表示する1列分のレイアウトを作成します。 article_content.xml

AlertDialogを作る

AlertDialogを今までActivityで作ってましたが、そうするとメモリーリークが発生するので、 DialogFragmentを継承させて、呼び出すようにしました。 その時の手順です。 ①AlertDialogのクラスの作成 DialogFragmentを継承させたクラスを作成し、そこで、ライ…

RecyclerViewに区切り線を入れる

RecyclerViewはListViewと違って、ある程度自由に画面を作成できますが、その分自分で実装しないといけない箇所が多いです。区切り線もそうです。ListViewでは特に実装しなくても区切り線が表示されますが、RecyclerViewでは実装が必要です。 val separateLi…