development since 2005 • Builds native Android and iOS apps for startups and bigger clients • Teams of approx. 5 for Android, iOS, Backend and Design. • Still in search of the perfect app architecture
static final int VIEWTYPE_EVENTS_UPCOMING = 0; static final int VIEWTYPE_EVENTS_RESULTS = 1; static final int VIEWTYPE_NEWS_HEADER = 2; static final int VIEWTYPE_NEWS = 3; static final int VIEWTYPE_NEWS_MORE = 4; static final int VIEWTYPE_WEATHER_TOP = 5; static final int VIEWTYPE_WEATHER_ITEM = 6; …… }
List<ViewModel>) : RecyclerView.Adapter<ViewModelViewHolder<ViewModel>>() { companion object { val VIEW_TYPE_EVENTS = R.layout.home_events val VIEW_TYPE_WEATHER = R.layout.home_weather val VIEW_TYPE_NEWS = R.layout.home_news } override fun onBindViewHolder(holder: ViewModelViewHolder<*>, position: Int) { val viewModel = viewModels[position] when (holder) { is EventsViewHolder -> holder.bind(viewModel as EventsViewModel) is NewsViewHolder -> holder.bind(viewModel as NewsViewModel) is WeatherViewHolder -> holder.bind(viewModel as WeatherViewModel) } } override fun onViewRecycled(holder: ViewModelViewHolder<*>?) { super.onViewRecycled(holder) holder?.release() } override fun getItemCount(): Int = 4 }