くま's Tech系Blog

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

Android

レイアウトの背景をカスタマイズする

今回はレイアウトファイルで、背景をカスタマイズする場合の方法についてです レイアウトで枠線をつけたり、角丸にしたりカスタマイズしたい場合Attributesで設定できるものもあれば、設定できないものもあります そして、設定できない場合にはxmlファイルを…

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をアプリで使う手順は次の手順で行います…

iOSにおける同期・非同期処理について

今回はモバイル開発で欠かせない同期・非同期処理の概念についてです 最初の方の概念の説明はAndroidも共通している内容ですが、後半はiOSに特化した内容になります Androidの同期・非同期処理はこの前、技術書典で出版した本で軽く説明しているので気になる…

FragmentManagerについて

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

Rx(Swift)とは?

今回はリアクティブプログラミングについてまとめようと思います RxSwiftをベースに説明しますが、概念の部分はAndroidや他のプログラミング言語でリアクティブプログラミングを行う場合でも共通すると思います Rxとは? Rx(Reactive X)とは、「オブザーバパ…

RecyclerViewについて

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

build.gradleとは?

今回はbuild.gradleについてです build.gradleファイルに息をするかのごとくライブラリを追加したり、設定を追加したりすると思いますが、よくよく考えるとbuild.gradleってなんだろうとふと思いまとめてみることにしました build.gradleとは? まず、Androi…

Androidでプッシュ通知(FCM)を使う

今回はAndroidでプッシュ通知を使う方法です。プッシュ通知はFCM(Firebase Cloud Messaging)を使います。 FCMの設定に関しては今回は割愛しますが大まかにいうとFirebaseのプロジェクトを作成してパッケージ名を設定すると、google-service.jsonがダウンロー…

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

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

Androidのツール属性について

今回はAndroidのレイアウト作成時に使うツール属性について書いていこうと思います ツール属性は主にレイアウトのプレビュー確認で使う名前空間です

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

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

スコープ関数について

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

Androidのスレッドについて

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

Androidでビルドのターゲット分けを行う

今回は、Androidでビルドのターゲット分けを行うようにするにはどうしたらいいのかを書いていきます。 ビルドのターゲット分けというのは開発環境と本番環境など向き先を変えるとうことです。 例えば、開発環境でapkを出力したり、本番環境で出力したりと変…

apkファイルをインストールする

今回はapkファイルをインストールする方法についてです たまに開発中のものをapkファイルに渡すということありませんか? そして、渡されたものをインストールして動きを確認することはありませんか? 今回はそんなときにインストールをする方法です 大前提…

Retrofitの基本的な使い方

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

エミュレーターでネットに接続する

今回は小ネタです。 以前、エミュレーターでインターネットに接続できずなぜ?と思ったことがあります。 デフォルトでAndroid WifiというWifiに接奥されていますが、設定をしないとインターネットに接続できないようです。 早速みていきましょう! まずはエ…

Contextについて

今回はAndroidでよく出てくるContextについて説明しようかと思います。 ContextはAndroidでよく出てくると思うのですが、漠然としたものでフワフワしていたので、少し調べてみました。 Contextとは? Contextを公式で確認すると下記のような記載があります。…

AndroidでRealmのインポートが上手くいかない

今回は小ネタです 新しいライブラリを追加してsyncしていると下記エラーが発生しました A problem occurred evaluating project ':app'. > Failed to apply plugin [id 'realm-android'] > Configuration with name 'kapt' not found. realm-androidでエラー…

SDKのライセンスについて

久々にAndroidネタです! PCをMacに変えて、プロジェクトをGithubからクローンしていよいよ開発かと思ったら、ビルドでエラーが。。。。 内容を見てみると下記のようなエラーが出ていました。 Failed to install the following Android SDK packages as some …

ButtonNavigationを使ってみる

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

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

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

Androidでグラフを作ってみる

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

アプリ名の設定やら何やら

アプリ名を設定したりやらAndroidではいろいろ設定することがあります。 今回は、アプリ名の設定をまとめたいと思います。 ①アプリ名の設定 基本的にはres/values/strings.xmlの中の、<string name="app_name">に設定されている値がこれにあたるのですが、ハマりポイントがあります。</string>…

レッツ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のライブラリに入っているので追加しました。 その時、バージ…