項目名
Name
Package name
Save location
Language
Minumum API level
This project will support instant apps
Use android.* artifacts
設定
number_ConnpassClient
com.number.connpassclient
自身の作業ディレクトリ
Kotlin
API 19: Android 4.4 (KitKat)
unchecked
checked (default)
※ number は 出席番号の1文字目と末尾2桁の英数字(小文字 3桁)
※ LauncherIcons の変更を忘れないこと(参照: ランチャーアイコンの設定)
イベント検索画面
イベント詳細画面
イベント詳細検索画面
イベント検索画面(初期)
イベント検索画面(ソフトウェアキーボードに検索ボタンを追加している: 任意で実装)
イベント検索画面(一覧表示)
イベント検索画面(メニュー: 詳細検索への遷移)
イベント詳細画面(上部)
イベント詳細画面(下部)
イベント詳細検索画面(初期)
イベント詳細検索画面(入力例)
Connpass API が返却する JSON データは必ずしも「non-null type」とは限りません。フィールドによっては「nullable」なものもあるので、事前にレスポンスを確認しておくこと。例えば、『python』と『hiroshima』という keyword で検索をしたい場合、Connpass API では次のようにクエリを連結して投げることで検索をすることができる。e.g. https://connpass.com/api/v1/event/?keyword=python&keyword=hiroshima####################Retrofit2 の「@Query」には、パラメータとして『可変長引数』や『List<E>』を渡すことができる。「@Query」に『可変長引数』や『List<E>』を渡した場合は、そのクエリが『&』で「要素数分」繰り返して連結される。e.g.val input = listOf("python", "hiroshima")@GET("api/v1/example")suspend fun searchExample( @Query("input") input: List<String>?): Call<ResponseBody>// 実行されるクエリ: ~/api/v1/example?input=python&input=hiroshima// 参考: http://outofmem.hatenablog.com/entry/2016/04/15/005541ViewModel のインスタンスを Activity の properties に定義することで、properties や public method を参照できる。また、拡張関数 activityViewModels() を用いることで、Activity の ViewModelStore を参照することができる。e.g.class MainActivity : AppCompatActivity() { private val viewModel: MyViewModel by viewModels { MyViewModelFactory() }}class MyFragment : Fragment() { private val viewModel: MyViewModel by activityViewModels()}// 参考:// https://developer.android.com/topic/libraries/architecture/viewmodel#sharing// https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ja#sharing####################Activity で Fragment のインスタンスを生成する際に、properties に定義することにより、onActivityResult()などから Fragment の properties や public method を参照できる。View の onClick() イベントを、メソッドにバインドすることができる。e.g.class MyViewModel : ViewModel() { private val isChecked = MutableLiveData<Boolean>() fun onClick(view: View) { if (view is ToggleButton) isChecked.postValue(view.isChecked) }}<data> <variable name="viewModel" type="com.android.example.MyViewModel" /></data><ToggleButton android:onClick="@{(theView) -> viewModel.Click(theView)}" />// 参考:// https://developer.android.com/topic/libraries/data-binding/expressions#event_handling// https://developer.android.com/topic/libraries/data-binding/expressions?hl=ja#event_handling「Connpass API」の検索クエリには「都道府県」の絞り込みができるようなクエリが存在しない。そのため、keyword 検索の「OR 検索」などで都道府県を複数指定することで絞り込む。選択情報について:どの都道府県が選択されているかを管理するためには「bit 演算」で行うのがわかりやすいかもしれない。また、それらの情報は enum class でまとめられていると良い。