Ruslan Davletshin

@eadm

Joined on Jan 29, 2019

  • Постановка задачи: разработать чат с текстовыми сообщениями Схема В заголовке требуется передавать Bearer токен для текущего пользователя GET api/messages/{channel} Параметры: from - минимальный id сообщения
     Like  Bookmark
  • Общие концепции AR контента 1 Поддерживаемые платформы: Все iOS устройства с iOS 12+ Все Android устройства с Android 7+ и Google Services в 3D режиме Android устройства из списка https://developers.google.com/ar/discover/supported-devices в AR режиме 2 Так как в данный момент AR контент будет отображаться только в мобильных приложениях, то возможность просматривать AR контент не должна быть обязательной для прохождения курса. Дополненная реальность призвана улучшать пользовательский опыт и помогать усваивать новый материал.
     Like  Bookmark
  • Мы используем нашу архитектуру уже на протяжении нескольких лет. Как показывает практика одним из самым сложных аспектов этого подхода является presentation слой. За время работы я повидал множество различный вариаций и даже мутаций исходного подхода с явным состоянием, в которых терялись основные его свойства и преимущества. В данном цикле статей мы вместе поэтапно построим презентер для достаточно нетривиального экрана, тем самым пролив свет на многие темные участки state подхода. Общая информация В этом разделе поговорим об общих концепциях, связанных с нашей реализацией presentation слоя. Основы презентеров Начнем с того, что вспомним, на чем базируются наши презентеры. Все презентеры в наших проектах наследуются от класса PresenterBase (пакет presentation-base), с типовым параметром V означающим тип view контракта. PresenterBase import android.os.Bundle
     Like  Bookmark
  • ## 1 ```kotlin= fun getItems(): Observable<List<Item>> = Observable.create { emitter -> emitter.onNext(getItemsBlocking()) emitter.onComplete() } @Throws(IOException::class) fun getItemsBlocking(): List<Item> = ... ``` ## 2 Допустим у нас есть следующий код: ```kotlin= class Course(val id: Long) class CourseContent(val sections: List<String>) interface CourseRepository { fun getCourse(courseId: Long): Maybe<Course> } interface CourseContentRepository { fu
     Like  Bookmark
  • # Android Code Style Guide Before reading this checkout this sources: - [Official Kotlin style guide](https://kotlinlang.org/docs/reference/coding-conventions.html) - [Android Architecture](https://hackmd.io/s/BJg82eA7N) - Clean Code - [Representing State](https://www.youtube.com/watch?v=-lVVfxsRjcY) **Download & import:** [Kotlin Code Style for Android Studio](https://drive.google.com/file/d/1E-Z-4LoM9ycjDMSlnNvzRmGpnEG1DzsC/view?usp=sharing) ## Code organization Code organized by packages
     Like  Bookmark
  • # Android Architecture ## Intro Project architecture based on CLEAN architecture with feature based package structure. This approach helps to retain code consistency for a large code base and provides ability for splitting up project in modules. ## Layer structure Code consists of 6 layers: - Cache - Remote - Data - Domain - Presentation - View The dependency structure is following: ![Layers structure](https://i.imgur.com/fCsuGMQ.png) For now all layers lay down in the same gradle module bu
     Like  Bookmark