Как стать автором
Обновить
0
0

Android-Developer

Отправить сообщение
Статься — простой пересказ туториала retrofit2 т.е. По мне так ни чего нового, можно любой туториал на хабре взять или любую библиотеку и переписать его на kotlinи выдать в качестве статьи — но это же смешно.

по это все
  • Классы данных
  • Объявления объектов
  • Сопутствующие объекты
  • Строковые шаблоны
  • Взаимодействие с Java

уже было сказано и не раз статей 10 было про котлин с эим содержанием после обявления гугла о поддержке котлина официально.

статья назвается Retrofit на Android с Kotlin но при чем тут RxJava? для удобства — ладно пусть, но опять таки все из туториала по retrofit2. На лицо перепечатывание с сайта Retrofit.

Далее есть раздел 3. Создание API-интерфейса и в нем приведен пример инерфейса и метода
interface GithubApiService {

    @GET("search/users")
    fun search(@Query("q") query: String,
               @Query("page") page: Int,
               @Query("per_page") perPage: Int): Observable<Result

}

все все ок (перепечатан пример из retrofit2 толкьо на котлин) но где черт возми объяснение как из него будет создан Observable, и почему не Call?
можно дополнить и укзать что именно отвечает за такую возможность.

А по мне так RxJava в данной статье это лишнее, убери ее и отличий будет минимум, куда приколькнее было бы расскзать о стандартном подходе, а в конце статьи добавить о том как легко можно можно испольвзать RxJava — заменой всего 2х строчек.

Так же например было бы куда полезнее расскзать про то как можно рабоатть с retrofit2 + LiveData например.
Rx — уже приелся и для данного примера профита от его испольвзания нет.

Ну вот опять как и в прошлой статье
fun get(): MyMvpApp = INSTANCE!!


Тут будет краш в рантайме при определенном стечении обстоятельств
Вот простое решение которое однозначно скажет всем INSTANCE не может быть null что и требуется
    companion object {
        private lateinit var INSTANCE: MyMvpApp
        @JvmStatic
        fun get(): MyMvpApp = INSTANCE
    }


но если уж хочется что бы нул был так и get() должен возвращать null
а для обращения к null в котлин используется оператор безопасного вызова — ? его и надо использовать чтобы код оставался безопасным и надежным.

Кроме этого функция — fun get(): MyMvpApp провоцирует использовать фактически синглтон MyMvpApp.get() повсеместно где нужен контекст, тут разумнее было бы вернуть AppDiComponent т.е.
companion object {
 fun getInjector(): AppDiComponent = INJECTOR
}


тем самым ограничив область использования
view!!.visibility = if (isShown!!) View.VISIBLE else View.GONE
Ну вот опять эти !! (двойной восклицательный знак) прямо кричит что тут явно что то не так. Ну почему нельзя немного подумать и написать безопасный код? понятно что это пример, но тут все просто — сделайте функцию fun showView(view: View?, isShown: Boolean?) без опциональных типов например и не нужны будут эти костыли в виде !!
Это конечно упростит жизнь, но это несколько доплнительных и возможно неудобных и лишних действий которые особо не помогают упростить процесс. Т.е. нужно сделть следующее
1. Назвать трек номер или ФИО
2. Назвать номер телефона
3. Назвать код из СМС

при этом между 2 и 3 пунктом может пройти много времени. По мне так проще заполненное извещение принести или заполнить его на месте и получить посылку вне зависимости от рабоспособности телефона и сервиса доставки смс сообщений.

Куда удобнее было бы на телефоне (я говрю сейчас про приложение) заполнить данные, и оператор на почте распечатал бы уже готовый бланк на котором нужно было бы поставить только подпись, вот это да упрощение процесса, да тут по прежнему требуется паспорт, но экномия времени и это технически проще чем СМС и заполнение форм.
Изображение в топе вызывает отвращение. А в целом статья интересная. Спасибо
В Комментариях автор пару раз упоминал функции — map, filter, reduce и т.п. разве наличие этих функций делает язык программирования функциональным? складывается такое впечатление что автор думает что именно наличие этих функций делает из ООП языка функциональный. По мне так это звучит как бред и наличие или отсутствие указанных функций не делает язык функциональным
Ни одна кросплатформенная система не позволит написать качестввенное приложение одинаково хорошо работающее и на iOS и на Android. А есили испольвзать для написания толкьо под айос по причине «не хочу разбиратсья с новым языком», то как мне кажется над заканчивать с программированием вообще.
Ну пока что (пока не вышла версия AS3.0) подддержака в IDE не так хороша как Java, многи библиотеки без костылей и доп гугбения не работают, тот же DataBinding не работает без пробелм, для поддержки анотаций нужен собсвенынй kapt что не добаляет удобства.
Вобщем надеюсь что после релиза разаработка приложений с kotlin будет проще со временем конечно.
Хорошие, новости может теперь исчезнет весь этот шлак который сейчас показывается в подборке.
Статья написана так какбудто можно и не работать а все время в отпуске тусить, конечно в отпуске на берегу моря хорошо, но на это надо заработать, а поэтому хорошо потусив пару недель, на работу как раз таки возвращатсья хочется что бы заработаь денег на следующих отпуск.
Вот реально за много лет рабоыт ни разу небыло такого что бы не хотелось на работу, после отпуска я с нетерпением жду выхода на работу, потмоу что мне нравится моя работа. Не понимаю всех тех кто ноет о том что работа — говно, начальник злой — так смените работу займитесь тем что приносит радость и тогда не будет желания во время работы пинать извесные предметы думая об отпуске
Даже хз, статья ниочем, ну косячно форматирует и что теперь? не в форматирвоании же смысл. Вот если неработало как заявлено, другое дело. Вы бы еще про подсветку синтаксиса написали что цвет не устраивет.
Dagger2 — пожалуй самая поллезная библиотека из этого списка.

Ретрофит — хоршо подходит если надо быстро получтиь данные из сети, наверно быстрее всегоп озволят это сделать
Вышло 2 поколения айфонов 6s и 7, и 8ка на подходе, а все айфоны начинают лагать при обновлении вот обновиться до iOS11 и все начнет лагать, сейчас уже на 6s тот же ЭирДроп работает медленне (передача данных) раз в 5 по сравнению с iPhone7.
Ну и лаги интерфейса заметны, я уже молчу про медленное открытие приложений не думаю что что то поменяется после релиза.
Все врно надо помечать такие приложения, что бы ползватели знали что запускают неполноценное приложение, а поделку кросплатформеную, котоаря толкьо похожа на нативные приложения.
6ка стала тыквой когда анонсировали 6s, уже на подходе 8ка, так что думюа проживет еще пол года и все.
Такой кабель не входит в комплект постави айфона.
Прошки 2016 — 2017 годов выглядят хорошо, но вот к качесту у есть притензии, а так же отсутствие портов — только type-c, это конечно хоршо если у тебя nexus или пиксель, а вот айфончик 6/6s/7 уже не воткнешь в новый макбук — это я считаю прям эпичным фейлом — невозможно к макбуку подклчюить айофн.
Ну а самое главное так это то что яблоко больше не светится — просто провал.

По поводу айфон 8 правильно нарисовали выше — кнопки как на андроид, мое мнение это самое логичное решение.
Dagger2 — отличный инструмен, спаибо за опсание еще одной удобной возможности.
Список можно скатаь «стандартный», использую из него только GitIgnore, а без остального жить можно, т.е. плагины не решают каких то важных проблем. Ну и эти плагины уже не раз описывались на других ресурсах, тут я ожидал увидеть чтото новое, а увидел старье да еще польза от них сомнительная.

Как выше отмечали некотоыре плагины так вообще в студию встроены.
Material Тема студии UI EAP
— это так ваще не материал (дефолтная Darcula и то лучше) — вырвиглазные цвета, бэкграунд у редактора отличается от беэкгранда панелей, иконки так ваще трындец — цвета инвертированы — на мой вкус тема ужасная.

Странно почему в список не включен например
ADB Idea
весьма полезный плагин, да и не толкьо он есть.
Список игр шикарный, открыл Untrusted —or— the Continuing Adventures of Dr. Eval и просидел пару часов после работы. Огромное спасибо за статью.
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность