インフラで分散処理に使われているKafkaについて調べる

Kafkaというキーワードは聞いたことがあるような状態で、詳細はよく分かってませんでした。
そこで、ChatGPTに問い合わせをしてみたのがこの記録です。
それではどうぞ。

“インフラで分散処理に使われているKafkaについて調べる” の続きを読む

Androidで権限を確認しながら位置情報を取得する

Androidで位置情報を取得するためのKotlinのサンプルコードを教えてください。

以下は、Androidで位置情報を取得するためのKotlinのサンプルコードです。

import android.Manifest
import android.content.Context
import android.content.pm.PackageManager
import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat

class MainActivity : AppCompatActivity() {
    private var locationManager: LocationManager? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager

        // 位置情報を取得するためのパーミッションを取得する
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 1)
        } else {
            // 位置情報を取得する
            locationManager?.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0f, locationListener)
        }
    }

    private val locationListener = object : LocationListener {
        override fun onLocationChanged(location: Location) {
            // 位置情報が更新された時の処理
            val latitude = location.latitude
            val longitude = location.longitude
            // 取得した緯度経度を使って何かする
        }

        override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {}
        override fun onProviderEnabled(provider: String) {}
        override fun onProviderDisabled(provider: String) {}
    }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
        when (requestCode) {
            1 -> {
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // 位置情報を取得する
                    locationManager?.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0f, locationListener)
                }
                return
            }
        }
    }
}

上記のコードでは、 LocationManager を使用して位置情報を取得しています。また、 LocationListener を使用して、位置情報が更新された時の処理を記述しています。

また、位置情報を取得するためには、ACCESS_FINE_LOCATIONとACCESS_COARSE_LOCATIONのパーミッションが必要です。そのため、パーミッションのチェックや取得のコードも記述されています。

このサンプルコードは、GPSプロバイダーから位置情報を取得していますが、他にもネットワークプロバイダーやPassiveプロバイダーなどがありますので、必要に応じて使い分けることができます。

位置情報を取得するために、ACCESS_FINE_LOCATIONとACCESS_COARSE_LOCATIONのパーミッションを取得する方法を教えてください。

  • AndroidManifest.xmlにパーミッションを記述します。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • アプリが実行される際に、パーミッションを取得するためのダイアログを表示します。
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 1)
}
  • ユーザーがパーミッションの許可/拒否を選択した際の処理を記述します。
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
    when (requestCode) {
        1 -> {
            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // パーミッションを取得できた場合の処理
            } else {
                // パーミッションを取得できなかった場合の処理
            }
            return
        }
    }
}

上記のようにして、ACCESS_FINE_LOCATIONとACCESS_COARSE_LOCATIONのパーミッションを取得することができます。


実際に実装する際には、パーミッション周りを便利に使えるライブラリを導入することが多いです。

インフラで使われているKubernetesの概要を調べる

最近はサーバーサイドに関わることが増えており、インフラ周りで使われている技術についても知識を吸収する必要が出てきています。
今回はその中で、Kubernetesについての概要をざっくりと知りたいと思います。
それではどうぞ!

“インフラで使われているKubernetesの概要を調べる” の続きを読む

Android SDKポケットリファレンスの評価を聞いてみた

ChatGPTとの触れ合いが多くなってます。
今回は著書の評価を聞いてみました。
結果は手厳しいものに・・・
それではどうぞ!

“Android SDKポケットリファレンスの評価を聞いてみた” の続きを読む