24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Android Development Thread Тред для тех, кто пытается вкатиться /android/
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что? После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http и прочее. Дальше закрепляешь знания путем создания пару простых приложений на свой вкус.
> Не хочу писать на Java! - Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально. Только не ной потом, что большинство примеров написаны на непонятной джаве.
> Есть что-то кроме нативных приложений на Java/Kotlin? - Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Второе место по популярности jsников после ReactNative. Если совсем поехавший можешь начинать с него. https://flutter.io/ - документация https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity Остальные: - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде. - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. - PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры! LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, Godot, LÖVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь? Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2. И хотя бы несколько готовых приложений.
>>1209407 >А как вообще с рынком? Говорят подыхать скоро собирается (инбифо так хоронят уже 100 лет джаву, си и пхп) и переход на жс будет. Какой рынок? Руби тоже 20+ лет дохнет никак не сдохнет.
>>1209672 Ладно, тогда так. Если этот пидорашка говорит, что нам нужно брать данные только с БД, тогда как Репозиторий должен узнать, подключен ли пользователь к интернету или нет? Это для того, чтобы отправить запрос в сеть, если он подключен.
Как получить текущее местоположение однажды, при запуске приложения?
Юзаю locationManager.getLastKnownLocation(provider) , проходясь в цикле по всем провайдерам. И вроде все окей, но оно не работает если с устройства никогда не запрашивались координаты ни одним из провайдеров.
Написал небольшой проектик с использованием Retrofit, RxJava. Приложение стандартное - парсим Json, отображаем список новостей и при нажатии на элемент списка открываем новое активити с детализацией. По архитектуре прибегнул к MVP. Пересоздание экрана запретил в манифесте. Анализируя опыт профессионалов так делать нельзя. Поэтому у меня встал вопрос о том, каким образом обрабатывать пересоздание активити, а так же хотелось бы поиметь практический опыт использования базы данных. Все по классике - сохранять последние статьи из списка и при отсутствии связи выводить их для пользователя. Поискав в интернете чего-то ясного для себя не нашел. Посоветуйте как реализовать данную тему?
Параллельно задаю вопрос по другой теме. Есть так называемые онлайн кассы, те самые, что сейчас государство пытается навязать каждому предпринимателю за овердохуя денег. У некоторых производителей кассового оборудования есть протоколы и описание работы с компьютером. Допустим, я хочу так называемый Вики Принт подключать к своему андроид смартфону. Данный кассовый аппарат подключается через com-port, либо usb через эмулятор com-porta. В итоге, получается, что у нас есть список команд, которые мы можем отправлять на устройство через com-port. Может здесь имеются знающие люди, которые бы посоветовали с чего начать копать в эту степь. Каков вообще принцип работы таких систем?
>>1209939 >Все по классике - сохранять последние статьи из списка и при отсутствии связи выводить их для пользователя. Поискав в интернете чего-то ясного для себя не нашел. Посоветуйте как реализовать данную тему? Кури Repository Design Pattern. И бери Room для работы с БД.
>>1210366 > как правильно нужно работать с бд В случае реляционки - юзаешь ORM для круда и обновления графа объектов. Для сложных запросов пишешь напрямую SQL или через любой билдер.
>>1210584 >В случае реляционки - юзаешь ORM для круда и обновления графа объектов. Для сложных запросов пишешь напрямую SQL или через любой билдер. Как правильно это проектировать.
>>1210640 >Молча - берешь и делаешь. Но мне понравилась архитектура индийца, где данные сначала в бд кладуться и потом из бд вытягиваются.
Только непонятно, если у нас есть в БД старый лист юзеров, и мы через интернет обновляем его. Но пока мы обновляем асинхронно, то может ли первый по списку проскочить через LiveData и отобразиться на экране?
>>1210602 мне 38 и хочу деликатно и расчётливо оптимизировать каждый абстрактный класс своей будущей мегапрограммы. Но плохо представляю как мне отладить её на AMD-процессоре не подключая физически десятки устройств.
>>1210602 А раньше нельзя было? Я запускаю давно уже. Правда слегка через жопу. Я запускаю официальный гугловский эмулятор, но через терминал, потому-что через студию он почему то падает. Может и это можно пофиксить, но мне лень.
>>1212078 >Только непонятно, если у нас есть в БД старый лист юзеров, и мы через интернет обновляем его. Но пока мы обновляем асинхронно, то может ли первый по списку проскочить через LiveData и отобразиться на экране?
>>1212634 >Как сделаешь, так и будет. Можно, чтобы показался, можно чтобы дожидался ответа с сервера и только при фейле тащился из бд. Хорошо. Попробую и отпишу о результатах.
Кароче решил написать свой небольшой ПЕТПРОЕК Т или как эт о у бородатых пидорасов называется? на андройде. Как под андройд заходит fullRESTapi? Что посоветуйте использовать Android Studio, Xamarin, Kivy + PyQT?
На серверной части думаю использовать постгресс. Хотя данные в основном циферки Есть ли какие нибудь камни? Какие ОРМ можете посоветовать под жабу, если андройд студия. Вот например под питон есть SQLAlchemy. На ней можно просто чудеса с данными вытворять. Жду советов и насмешек от прошаренных ведрогоспод.
>>1212853 >Как под андройд заходит fullRESTapi? Интересно, помимо РЕСТ АПИ еще что-нибудь есть? Просто я посвятил жизнь андройду и не знаю что еще есть.
>Что посоветуйте использовать Android Studio, this.
>На серверной части думаю использовать постгресс. Хотя данные в основном циферки Есть ли какие нибудь камни? Лишь бы сервак стоял. Какая разница?
>Какие ОРМ можете посоветовать под жабу, если андройд студия ttps://github.com/AlexeyZatsepin/Android-ORM-benchmark
>Вот например под питон есть SQLAlchemy. На ней можно просто чудеса с данными вытворять Какие? Жопобольная кросптлатфор?
Для эффективного вкатывания - Realm.
>Жду советов и насмешек от прошаренных ведрогоспод. Не вкатывайся в это дело. Я не шучу.
>>1212891 Я тут подумал что серверную часть можно написать на питоне. Можно не отказываться от моей любимой алхимии. Плюс Flask. Собственно приложение на ведре будет только получать и отправлять JSONчики.
Что думаете, взлетит? Мне бы еще как то привязать к этой хуйне аутентификацию в плеймаркете.
>>1212899 >Собственно приложение на ведре будет только получать и отправлять JSONчики. Смотря какой функционал. Если тупо отображать без кнопок - то изи.
>Что думаете, взлетит? Что взлетит? Ты ничего толком и не расписал.
>>1212906 >Если тупо отображать без кнопок - то изи. Поясни плиз.
>>1212906 >Ты ничего толком и не расписал. Ну со стороны клиента будет вестись статистика. Может даже нужно будет дать возможность создавать некие сущности. Но это опять же набор целочисленных циферок, просто с другими буквами.
Сап, аноны. Подскажите плиз такую вещь - какой максимально рекомендуемый размер класса в андроиде в плане количества строк? Так как нигде не могу найти четкой инфы или рекомендаций от гуру андроид-разработки в этом плане. По своему опыту могу сказать, что самыми большими классами получаются именно Активити или Фрагменты и вот сейчас заметил, что одна из моих Активити имеет около 500 строк кода, уже с учетом того, что по максимуму я ее разгрузил, перенес часть функционала в класс-родитель, еще часть взяла на себя мвп-архитектура
>>1213205 вот нахуй ты сюда поумничать пришел? Я же написал тебе, что уже по максимуму разгрузил активити - клин есть, мвп с дагером есть. В ней только колбеки и переопределенные методы суперкласса по факту ну и инициализация необходимая. Но даже со всем этим получилось 500 строк. Потому и написал тут, нормально ли это или нет?
>>1213300 >Пришел в тред >Спрашивает про строчки кода >С умным видом выхаживает и рассказывает что применял, даггеры хуягеры, мвп, либанейм* >Скидывают как пишут продакшет >РЯЯЯЯЯЯЯ ФРАГМЕНТЫ ТЫ МНЕ СКИНУЛ ФРАГМЕНТЫ!!!!!!!!
>>1213268 толсто. Вообще телеграм самое противоречивое приложение в плане того, что с одной стороны имеет идеальную стабильность и быстродействие, а с другой - жуткие макароны в коде, приправленные антипаттернами и нечитабельностью.
>>1213320 >Спрашивает про строчки кода >С умным видом выхаживает и рассказывает что применял, даггеры хуягеры, мвп, либанейм* потому и спрашиваю, что даже после этого всего строк около 500, что меня и насторожило, что тут не понятно?
>Скидывают как пишут продакшет телеграм? лол, это же один из худших вариантов того, как надо писать код
>РЯЯЯЯЯЯЯ ФРАГМЕНТЫ ТЫ МНЕ СКИНУЛ ФРАГМЕНТЫ!!!!!!!! не я писал
>>1213588 на закрытых репозиториях, очевидно же. Так как в соответствие со всеми правилами и канонами пишут только в больших и хорошо оплачиваемых галерах, где либо программисты достаточно толковые, либо за качеством кода следят. Естественно, проекты в таких фирмах в открытый доступ не выкладываются.
>>1213135 В активити должна быть только ui часть, которая зависит от событий, которые присылает ей презентер или пользователь. Поэтому её размер зависит от количества и разнообразия ивентов.
Какое IDE вы используете? У меня стоит Android Studio, но review не работает и, чтобы посмотреть, что получилось, приходится компилировать и запускать на телефоне...
>>1214413 Он, видимо, думает, что если сможет написать свое приложение на c++, то оно будет быстро работать и на старых телефонах, а если на джаве - то не будет.
Ох лооол, как же я проиграл. Бывают же дауны, не могущие даже в гугловскую документацию (самую легкую и понятную из всех имхо) и не понимающие, что на джаве(котлине) можно писать приложухи для любой версии ос. лол сука, еще раз орнул
>>1213568 >идеальную стабильность и быстродействие По мне если приложение имеет подобные характеристики, то можно закрыть глаза на говно-быдло-рыбо-код.
>>1214507 >не могущие даже в гугловскую документацию (самую легкую и понятную из всех имхо) Без опыта программирования в целом любая документация не будет особо полезна. Мне в начале пути гугловская не особо то и помогала, много непонятной хуйни и примеров. Даже сейчас примеры у них говеные в коде.
>>1214622 >д андроид умные, у них даже все символы занимают много байт, вот прям уважение! Причем здесь вообще это? Для пидарасов, которые считают каждый байт приложения и его ОПТИМИЗАЦИЮ во время жизни, уже давно придумали активити и фрагменты. На, ебись с этим маня.
>>1214654 >формальные языки Эх, завидую. У нас в универе только матаном грузят, информатики почти нет. >хули бы я здесь делал Просто по приколу пишешь программы, у меня так батя делает.
>>1214899 Мне очень помог этот Димасик. Если хочешь, можем скинуться на другие курсы вместе. Т.е. ты мне кидаешь рублей 50, я тебе вторую главу из даггера, и так ты кидаешь мне в сумме 250-300 рублей. У тебя есть даггер, и я еще рх джаву или тестирование покупаю по скидке. И тебе потом кидаю этот купленный второй курс.
Но здесь обычно никто никому не верит, так что увы.
>>1215167 Я сказал на будущее, а не сейчас ее брать, долбоеб. Пусть сначала напишет подобную хуйню сам, а когда уже поймет, то берет либу. Нахуя ему каждый раз писать бойлерплейт и городить велосипеды, если уже все есть?
>>1215172 >бойлерплейт и городить велосипеды, если уже все есть? Главное вспомнить Клеан Архитектури, где она не должна зависить от какой-либо библиотеки
>>1215034 Ты напиши. Вообще я пока не планировал брать. Думаю через неделю тестирование бахнуть.
>>1215174 > Главное вспомнить Клеан Архитектури, где она не должна зависить от какой-либо библиотеки Так у тебя зависимым становится только презентейшон слой. Может ты и в дата слой орм не тащишь?
Я личной свой пет проджект перепилил на вьюмодели с мокси. Потому что могу, да и зашло там хорошо. Вьюстейт в мокси по сути выполняет работу вьюмодели, сохраняя последние полученные данные. Ну и нахуя этот костыль, если теперь можно напрямую биндиться ко вьюмодели, переживающей поворот?
>>1215369 не понимаю, чего все доебались до этого поворота. как-будто если ты решил проблему с поворотом, то больше думать ни о чем не надо. а то что в фоне система кильнет твой апп - это похуй всем? почему никто это не обсуждает например, а ебаный поворот?
>>1215416 > а то что в фоне система кильнет твой апп - это похуй всем? Так если кильнет, то из сети уже проще инфу подтянуть, если у тебя приложение не оффлайн ферст. Да и вероятно, что юзер так долго не пользовался приложением, что ему уже будет поебать, что там что-то заново грузится, а не досталось из мемори кеша.
>>1215427 Там же презентер в синглтон хеш мапе живет, вот и переживает поворот. А все, что ты отправлял во вьюстейт накатится снова, когда новая вьюшка подцепится.
>>1215425 >>1215434 так о почему бы мне тогда не забить хер на поворот, и тянуть данные из сети/доставать из кеша при повороте, почему все так гонятся за этим мифическим переживающим поворот презентером ?
>>1215425 >ему уже будет поебать вот тут не соглашусь, мне не поебать ловить баги с restore state у каждого второго приложения, хотя на девайсе 3gb ram. Представляю как живется людям с 1gb, а потом читаешь в интернетах высказывания в стиле - аа, ведроид глючное говно, пихон лучше
>>1215444 > вот тут не соглашусь, мне не поебать ловить баги с restore state у каждого второго приложения краш != восстановленное состояние без сохранения скролла и введенных данных и загрузкой того, что было уже загружено 5 минут назад
>>1215446 > один экран затянуть Все экраны в стеке навигации вообще то. > кеш можно простой накидать Накидай. А пацаны которым нужно быстро на аутсорс сделают переживающий поворот презентер с хранением полученных данных в памяти.
Алсо, самое главное же свойство переживания поворота - фоновые операции не прерываются. Не нужно ничего пердолить с хранилищем фоновых операций как в яндексе например делают, в презентере сделал сабскрайб и не ебешь себе мозги.
Есть ли у фрагментов подобие onActivityResult()? И еще вопрос: насколько сильно сейчас при разработке используют фрагменты? Ну то есть понятно , что если если есть планшет , то фрагменты обычно нужны , но нужно ли везде пихать эти самые фрагменты и делать single activity или обычно при разработке приложений используют множественные activity?
>>1216045 Двачую. Заебышно 5-6 фрагментов класть. Помню на работе нужно было провести аля магию, где на 4 фрагменте еще нужно было возвращаться на первый. Даже сам не понял, как заработало, мозги уже плавали от такой хуйни.
И так научился не много быдлокодить :-) Сейчас почти весь код в MainActivity как разделить на классы.?
1.Создаю новый класс. Есть метод setCookiePolicy из CookieManager ,требует что б находился внутри onCreate ну ок. Наследуюсь от AppCompatActivity. Тогда вопрос не пойдет по пизде lifecycle.? Как луче сделать?
2. Как передавать переменные. Хочу отдельно OkHttpClient и пикассо. Создаю клиент там же Downloader, а экземпляр пикассо в отдельном классе ,например, в ImageBuild.java.Теперь, как луче передать OkHttp3Downloader downloader в ImageBuild.java : сеттеры,гетеры,новый экземпляр,...и т.д?
>>1216412 >Тогда вопрос не пойдет по пизде lifecycle.? С чего он пойдет по пизде, если у тебя объект в активити создается каждый раз?
>2. Как передавать переменные. Хочу отдельно OkHttpClient и пикассо. Создаю клиент там же Downloader, а экземпляр пикассо в отдельном классе ,например, в ImageBuild.java.Теперь, как луче передать OkHttp3Downloader downloader в ImageBuild.java : сеттеры,гетеры,новый экземпляр,...и т.д? Че блять?
>>1216463 >про синглетон и даггер ок, спасибо >зачем ты юзаешь билдер для пикассо и добавляешь так интерсептор. Чтоб добавить http заголовок и куки в запрос ,а потом в ответ получить изображение
Здарова пацаны! Есть приложение (apk), исходного кода нет. Во время использования создает дохуя кэша и раздувается как ебнутая фемка. Хочу сделать так, чтобы после закрытия приложения оно само очищало свой кэш, как мог бы вручную сделать это я по пути < Apps --> Manage Apps --> "My App" --> Clear Cache>>. Как я уже сказал, исходного кода нет, но apk редактировать могу. В коде нихуя не понимаю, так что буду благодарен, если кто-нибудь подскажет, что куда нужно прописать, чтобы реализовать это.
>>1216531 Можно попробовать декомпилировать в джава-классы, добавить аппликейшон класс, перегрзуить там онДестрой и оттуда уже чистить. Хотя я хз, можно ли перекомпилировать с добавлением своих классов. Мимо
>>1218240 >Лучше котлин. Но джава пока еще катит Хуетлин.
>>1218210 >вкатываться в Xamarin ну и писать на сярпе? Можешь попробовать. Вообще я видел челика здесь который борду на хаскеле запилил. А оно это надо? Кури юдасити и не парь мозги.
>>1218396 >тебя ждет фиаско и разочарование Чому? Я тыкал его немножко, к синтаксису пока не привык и особо перекатываться тоже не хочу. Я зеленый, мне и на джаве нормально.
>>1219099 Ох, спасибо, но там видимо понадобиться ставить довольно много различной джавы. Не был ли ты так любезен, чтобы извлечь мне тексты из следующего маленького приложения? https://apkpure.com/запоминания-чисел-мнемоника/ru.wellapp.zapominanie_chisel Я был бы очень благодарен. Да и думаю приложение-то совсем маленькое и вроде бы дружелюбное к подобному.
Допустим у меня есть 2 фрамента в TabLayout. У двух этих товарищей у меня разные данные грузятся в бд и отображаются после в UI.
Теперь завязка: Посредством кнопки мы посещаем наше новое активити, которое содержит этот TabLayout. Соответственно, в фрагменте №1 мы грузим список. Потом мы переходим в фрагмент №2 и тоже грузим список.
Концовка: Когда мы перейдем обратно на фрагмент №1, мы опять запросим список с интернета.
Это же не нормально, запрашивать заново данные, когда юзер через 5 секунд опять оказался в фрагменте №1.
Вопрос, как тогда решается такая ситуация? Вешается таймер какой-нибудь или чекаем время последней загрузки данных с интернета?
>>1219689 >А зачем это фиксить? Тебе это никак не мешает. Да, в разрабе никак не решает, но если я захочу его выпустить? 20МБ это пиздец конечно, а не размер алсо попробовал засплитить, из 20МБ получилось 15МБ. Сейчас нужно опять почитать вдумчиво про что такое апк и т.д.
>>1219753 >Когда собираешь релизную сборку дебажные сплиты ресурсов не применяются. Ты пишешь так, что это все в порядке вещей. И приложения должны быть такими большими. Это ты так рофлишь?
ММ, найс спустя столько времени неожиданно узнаешь разницу между okHttp and Retrofit. Тогда зачем вообще нужен retrofit, если я могу ручками гет и пост запросы делать? Вот это конечно неожиданный удар в спину. Я в шоке.
>>1219787 > Тогда зачем вообще нужен retrofit, если я могу ручками гет и пост запросы делать? В ретрофите удобнее. Окхттп для кейсов, когда ретрофита не хватает.
Как сделать воспроизведение аудио в канал фронтального динамика? Возможно ли это без жутких костылей? Гугление вообще ничего не дало. Может кто-нибудь хотя-бы направить на путь истинный?
аноны, можно ли уменьшить скорость прокрутки recycler view? Сейчас смотрю нагугленные гайды , там говорится переопределять layout manager и оверрайдить в нем smoothScrollToPosition , но чет нихера не помогает, есть ли еще способы?как же блять заебали эти сайты , которые тупо парсят английский стаковерфлоу, прогоняют ответы через гуглопереводчик и публикуют у себя даже не оставляя ссылку на оригинал, читать такую жижу невозможно(особенно когда натыкаешься на "намерение","активность" или "вид"), а весь поиск только ими и засран
>>1220386 > как же блять заебали эти сайты , которые тупо парсят английский стаковерфлоу, прогоняют ответы через гуглопереводчик и публикуют у себя даже не оставляя ссылку на оригинал, читать такую жижу невозможно(особенно когда натыкаешься на "намерение","активность" или "вид"), а весь поиск только ими и засран Ты попадаешь на такие сайты только потому, что гуглишь на русском.
>>1209454 (OP) Ананасы, посоветуйте максимально дешевый андроид телефон для разработки, пользоваться повседневно все равно не буду, так как есть айфон, поэтому главное чтобы обновлялся как можно дольше на актуальные версии и не совсем уж тупил. Не в mobi потому что там одни школьники с китайскими салями.
>>1220934 Я с этого самого a1 сейчас и капчую. 8.1 есть, ниче не сломано. Да, обновляется не так быстро, как флагманы самсунга, но ты и цену сравни, он спрашивал максимально дешёвый.
Когда я беру данные из интернета, я подключаю рх, дергаю их и заношу в БД. Соответственно, это все происходит в другом потоке. Сейчас я использую LiveData для того, чтобы метод мне в какой-то момент вытащил свежие данные и отобразил на UI.
Мне очень хочется узнать, как организовать это дело без использования LiveData?
>>1218553 самый лол в том, что да. Настанет день, когда гугл скажет, что больше в андроид-разработке джава не поддерживается, котируется один лишь котлин. Все, кто игнорируют или хейтят его соснут плотных болтов и будут плакать горькими слезами.
>>1219756 лол. Для тебя 15-20 мб для апк - это много? Это же вполне нормальный размер. Если приложение достаточно большое, то оно и до 60 мб может доходить
>>1221138 Шизик, а котлин по-твоему во что компилируется? Или ты ещё один свидетель flutter'а и андромеды, которые вот-вот захватят рынок, нужно только чуть-чуть подождать?
аноны, помогите, как называется всплывающая снизу кнопка, типа если проскроллить ресайклер до конца вниз, то должна вылезать кнопка шоб загрузить еще. Это надо реализовывать через floatActionButton + onScrollListener или для этого есть специальные методы какие-то? на пикрелейтеде примерно изобразил что хочу.
>>1221232 перед тем, как привселюдно обсираться в треде, где все же сидят достаточно умные люди (это все-таки тебе не бэ и не по), ты бы хоть поинтересовался темой. Почитай, почему вообще так получилось, что гугл стал искать замену джаве, почему уже его внедрил, как офф язык для разработки, почему рекомендует всем переходить на него.
>>1221295 Вчера обновился, а сегодня обновление временно отозвали: пишут, что у некоторых смсмки удалились из-за него. Так что жди, починят и выкатят обратно.
>>1221331 >реакт натив все ближе петушок. Ахаха бля. В каком месте?) Я даже вакансии уже знаю, что на РА по рашке их 300, а по андройду 3к. Писос соси, маня.
> Прижмет и побешишь Кантора читать. Максимум куда я с холодным потом побегу - так это читать котлин. А что еще за Кантор? Это шизик мочаскрипта?
>>1221363 Неее. Фронтэнд параша не привлекает. А урок который гласит что лучше заниматься чуть менее оплачиваемым делом но которое нравится, нежели более оплачиваемым которое ненавидишь, я усвоил уже.
>>1221297 Спасибо, примерно это и хотел. Не помню в каком приложении видел такую штуку, но там видимо эта кнопка была просто красиво сделана и по виду floatActionButton напоминала. По поводу endlessScroll`а: возможно 2 варианта своего мега приложения сделаю чтобы опыт получить, если сделаю вариант с endlessScroll`ом, то скину сюда.
>>1221402 >возможно 2 варианта своего мега приложения сделаю чтобы опыт получить Я тебя сразу предупрежаю взяться за архитектуру, если еще не взялся. В начале своего пути я пытался пагинацию ебнуть вместе с подтягиванием данных из бд и так далее и все в активити. Очень много времени на эту ебанину потратил. А по факту недавно апп ебнул и по красоте все работает.
>>1221409 да , уже напарывался на некоторые проблемы из-за архитектуры пытался сделать экшн мод для ресайклер вью сделать, но обосрался, тк там типа при скролле ресайклер реюзал уже выделенные элементы и не выделенные элементы все равно подсвечивались, в итоге когда нашел способ исправить не смог это сделать , потому что там все было запутанно очень сейчас вот пытаюсь по mvp приложение делать, но не уверен, что правильно все выходит
>>1221424 >cейчас вот пытаюсь по mvp приложение делать, но не уверен, Я бы посмотрел. Хотя надо мне сделать МВП с Моху в качестве примера, но пока руки не доходят.
>>1221314 ой орууу с этого мани. чувак, гугл в одном из обновлений андроид студии просто отключит поддержку джавы и все. Вот такая вот "многоходовчка" в один шаг. Это все, что им надо будет сделать, чтоб джава в мобильной разработке умерла. Потому что никто назад к эклипсам и нетбинсам не вернется, всякие долбаебы типо тебя поплачат на форумах и пойдут , матерясь, учить котлин в попытке успеть на последний поезд и вкатиться. Остальных, самых принципиальных джавистов-староверов порешает рыночек. Единственное, почему гугл все еще этого не сделали - это достаточно количество джава программистов и проектов на данный момент. Но это быстро пройдет
Вообще всегда удивлялся, как в сфере айти, самой динамично развивающейся, появляются такие лютые консерваторы, не способные вообще принять перемены и спокойно с ними жить и работать дальше.
>>1221473 забыл добавить, что при таких раскладах конечно найдутся люди, которые через костыли и танцы с бубнами смогут писать на джаве и компилить все в апк-файлики, но таких останется меньше процента и это уже совсем забитые гики, на которых никто особо книмания обращать не будет
>>1221473 > гугл в одном из обновлений андроид студии просто отключит поддержку джавы и все. Ты не в курсе, что студия - это кострат идеи, да?
> Вообще всегда удивлялся, как в сфере айти, самой динамично развивающейся, появляются такие лютые консерваторы, не способные вообще принять перемены и спокойно с ними жить и работать дальше. Я сам котлин в своей фирме проталкивал, тебе не про консерватизм говорят, а про то, что ты хуйню несёшь.
>>1221273 > гугл стал искать замену джаве Суд был из-за апи джава классов, сделанный 1 в 1 с оракловсим ради обратной совместимости. Тот самый апи, который ты используешь в своем любимом котлине, ведь крутится он на жвм.
>>1221480 принципиально ничем. Просто другой более современный язык с вкусными плюшками, который в джаве не хватало
>>1221481 >Ты не в курсе, что студия - это кострат идеи, да? В курсе, и что? Я про это написал уже выше, что кодить на джаве будет конечно возможность, устанавливая всякие левые плагины, костяли и так далее, но так мало кто будет делать.
>Я сам котлин в своей фирме проталкивал, тебе не про консерватизм говорят, а про то, что ты хуйню несёшь. я в этом треде написал следующее - котлин будет со временем только забирать больше позиций, джава соответственно меньше. При желании гугл отключать джаву и оставят один котлин. Произойдет это не сейчас, но относительно скоро (лет 5 где-то). Давай конкретно, что из этого хуйня? Если ты не согласен хотя бы с одним из пунктов, то нахуя ты у себя котлин протягивал? Оставался бы на джаве.
Господа программисты, такой вопрос. Когда делается веб-проект или сайт, то заказчику по итогу предоставляется админка для редактирования новостей, добавления материалов и т.п., короче простейшая cms (ну или не простейшая, если заказчику это нужно).
А что выступает в качестве управлялки для управления мобильной приложухой? Предположим, создается апп для доставки жратвы. Наверное, ассортимент, фоточки и пр. сливаются автоматически из внутренней CRM компании. Но есть вещи, которые манагер должен включать вручную, ну допустим, нужно вывести уведомление сверху В СВЯЗИ С ПОЖАРОМ, МЫ ЗАКРЫТЫ ДО 12.05. Это продумывается заранее? Пилится отдельный интерфейс для манагера? Веб-интерфейс или прямо в прилохуже или вообще виндовое приложение?
>>1221827 >Как обычно-то делается? Да хуй его знает. Каждую неделю они созваниваются с тимлидом или еще с кем кто переговоры ведет и прогает чуток и обсужают. Потом этот челик приходит ко мне и говорит - делай так. Я и делаю.
>>1221836 Так тебя это вообще ебать не должно. Ты ведроразраб, а админку для бэкенда пилят обычно в веб формате. Хотя если и админка будет ведроид приложением, то за работу, хули.
>>1221836 >И как, например, ты делал? Че делал? На тебе таски навешивают и хуяришь их неделю. Потом новая неделя - новые таски. Так месяцы незаметно пролетают, глядишь, а тебе уже 60 лет и ты дед уже вонючий.
Ананасы, у кого-нибудь есть про акк на caster.io? Я бы скинул денежку за несколько платных курсов. Или, может, вместе скинемся на общий платный аккаунт?
>>1222151 Я сейчас заценил два курса по MVVM и Clean Architecture (они были бесплатные какое-то время), очень понятно, мне зашло. Правда, некоторые моменты упустил и хотел пересмотреть, а они не дают пересматривать уже просмотренные уроки.
Как меня бесят такие пидарашки. Развертывают проект и кидают по разным папкам. Нет блять чтобы по человечески от main ебнуть эти domain presenter я бы простил, но за такое сразу нужно бить по ебалу.
>>1222189 Нормальные курсы. Первые скучноватые, но теории много. А на яндексе 2017 мне нравится как бабенка одна выкрикивает постоянно. Я бы ее жахнул. Она уже доклады читает я видел.
>>1222192 >учу гуглить Да я вроде умею более или менее, но вот именно курс на кастере показался мне наиболее понятным.
>MVVM Курс на кастере как раз учитывает состояние сети, загрузку и все это под рх. Кстати, а в каком уроке по LiveData с Realm он костылит? Кинь ссылку, посмотрю, как делать не надо. Ну и за андроиддев статью спасибо, прочитаю.
Я правильно понял, что можно просто поставить какую нибудь статическую переменную лонг на 60 секунд создать функцию как на пикриле и просто проверять, если времени прошло меньше, то грузить из БД? Это нормально так делать?
>разобрать через гитхаб У меня очень медленно идет разбирание через гитхаб, непонятно, куда что идет и откуда. Поэтому и нужны курсы.
>RealmLiveData По-моему, это вообще бессмысленно - там же RealmResults и так автоматически обновляются на любом треде с лупером. Зачем еще делать обертку в ливДату - тупо ради примера? ИМХО, если у кого-то в проекте есть релм, то ему уже не нужна ливДата или рх (по крайней мере, для работы с релмом).
Кстати, еще такой вопрос: допустим, в домене модель состоит из трех классов, у одного из них есть ссылки на другие (обычная аггрегация). Дальше, в модуле БД эта модель представляет из себя 3 POJO с маппингами отношений в самой БД. Итак, какого вида модель должна лежать в модуле Data (между Domain и DB)? Нужно ли ее раскладывать на 3 POJO уже в маппинге между Domain и Data или оставить как есть, и маппить только в DB?
>По-моему, это вообще бессмысленно - там же RealmResults и так автоматически обновляются на любом треде с лупером. Зачем еще делать обертку в ливДату - тупо ради примера? ИМХО, если у кого-то в проекте есть релм, то ему уже не нужна ливДата или рх (по крайней мере, для работы с релмом). Ну напиши тогда простой пример с MVP + Repository и реилмом. Была бы такая нормальная реализация, я бы и ей пользовался, но увы, ее нет.
>с маппингами Я не знаю что такое маппинг. И особо глубоко пока не копал domain.
Пожалуйста, подскажите кто нибудь. На экране по центру расположен Button. Под ним сразу располагается GridLayout с изначально установленным числом строк и колонок. В каждую ячейку динамически кодом добавляется разные ImageView. Проблема - изображения начинают вылезать за границы экрана. Поэтому при добавлении ImageView руками меняю размеры через setLayoutParams. Ширину ячейки (изображения) считаю так: ширина_экрана / количество_колонок Высоту ячейки так: (высота_экрана - высота_кнопки) / количество_строк Размеры экрана получают через windowManager.defaultDisplay. Высоту кнопки тоже верная (пробовал и хардкодом)
В итоге получается неверно: по ширине нормально, а по высоте на экран влезают не все строки. Подскажите, почему по высоте такое говно получается?
>>1222873 Ну, возможно. Но мне все равно надо сделать таблицу картинок, которая динамически будет менять свой размер относительно размеров экрана. Как это лучше сделать? Может другой layout какой нибудь использовать?
Пацантре, насколько сложно вкатиться в Андроид? Востребовано ли это? Учу джаву пока а дальнейшее направление не выбрал. Хочется послушать андроидобогов.
>>1223176 Ну если говорить о джава кор то да, а если все-таки учитывать весь джава стек под которым подразумевается "джава" (спринги, хибернейты и прочее) то меньше процента.
Когда я начинал разработку, я не понимал документацию. Это была сложная и запутанная штука. Приходилось копаться в каких-то уроках, туториалах, искать ответы на стекеоверлоуве. Но со временем я понял, что на самом деле большинство ответов на этом стеке взяты с документации и только с нее. Поэтому я начал читать документацию спустя столько времени и оно действительно помогает, а еще и официальные доки тоже. Но иногда там валяется параша.
>>1224034 Все те же проблемы, что и с другой многопоточностью. Кроме них никаких - корутины годнота.
Разве что один момент - корутины заточены под асинхронные действия и приостановимые вычисления. Например если тебе нужно параллельно обработать 100 задач, то rxjava или reactor будут немного более neat за счет .parallel.runOnScheduler(scheduuler).subscribe.
Но для ведра это не кейс, поэтому корутины особенно годнота.
>>1224047 > Пробовал в реальных проектах? Конечно, брат жив. > Так же меня их экспериментальный статус смущает, как бы с новой версией котлина не пришлось их переписывать. Ты бы хоть немного погуглил прежде чем отнимать время анонов. У них давно уже экспериментальный статус и они уже сделали все что хотели - в следующей версии котлина лейбл экспериментальности снимется. Использовать в проде можно уже сейчас, джетбрейнс гарантируют.
>>1224049 Че по стак трейсами то в итоге? Слышал у них туда куча говна из их синтетики попадает и он в целом идет по пизде, впрочем как с рх. Если проблема осталась, то толка менять шило на мыло особого нет.
Да, и что там с работой с потоками данных? Все гайды в инете рассказывают как работать с единичными запросами. В документации есть channels, но примеров их использования на андроиде я не нашел. Можно с ними что-нибудь на подобие бихейвиор сабжекта замутить? И если да, есть ли примеры.
Вот сейчас я юзаю retrofit и под каждый json я прописываю gson класс.
Есть ли какая-нибудь либа которая упрощает это дело? Может быть я хочу в Observable<MagicClass> поставить такой класс, чтобы не прописывать каждый раз gson классы.
Просто ебнуть обсервабле а потом по каким-то магическим образом он уже будет включать в себя get set и так далее. Мне лишь остается просто тянуть нужные и сейвить в бд.
>>1224373 > There’s no field naming strategy, versioning, instance creators, or long serialization policy. Instead of naming a field visibleCards and using a policy class to convert that to visible_cards, Moshi wants you to just name the field visible_cards as it appears in the JSON.
>>1225262 Зачем мне читать доку? Я осилил readme ровно до этой строки и закрыл вкладку. Или ты к каждую либу досконально исследуешь? Времени свободного дохуя больно?
>>1224373 ты где этот бред вычитал? Gson же самый удобный это раз, имеет достаточную функциональность, в которую врубаешься даже будучи новичком минут за 5-10 - это два. Ну и три - это идеальная состыковка со связкой ретрофит+окхттп. Не ебу , можно ли моши встроить в нее, но дае если и да, то ебал я в рот писать для этого езе костыли
>>1225441 Тут все просто. Во всей сфере дефицит скиловых людей. И либо ты расплачиваешься и ищешь опытных либо экономишь но копаешься в говне. Тот же спермбанк и прочие гиганты могут себе позволить копаться в говне, у них и так целый штат эйчаров которым дело нужно придумать
>>1225448 У гигантов зачастую и требования совсем не джуновские. В тот же Яндекс чтобы попасть, нужно пять раундов тестовых по 3-4 часа пройти и ещё всякими круглыми луками тебя мучать будут. Если у джуна мало опыта и знаний, то в гиганты ему точно нет смысла соваться.
>Опыт работы в области разработки веб-приложений и мобильных приложений; Парочка говносайтов на реакте и аpk в плеймаркете и подходишь >Java, Javascript, HTML 5, CSS ну это знать надо любому кто в вебговне копается или мобилках (хотя во втором уже опционально) >Понимание SOAP и REST, XML и XSLT Понимание можно и приобрести >Умение и желание разбираться в «чужом» коде Абстрактное требоование
Дополнительные навыки (может повлиять на выбор одного из кандидатов):
>Опыт разработки Android приложений или iOS-приложений Опять же парочка приложений в маркете >Использование системы контроля версий GIT/ SVN знать любому прогеру нужно >Опыт работы с Tomcat, IBM WebSphere; Вот тут сложно да
>>1225316 1. Gson хуже Moshi. Не веришь мне - вот тут один из создателей обеих библиотек это расписал: https://www.reddit.com/r/androiddev/comments/684flw/why_use_moshi_over_gson/ 2. "это идеальная состыковка со связкой ретрофит+окхттп". Идеальная как раз у связки okhttp(retrofit)+moshi, т.к. они обе используют okio для обработки потока байтов.
В общем, ты не прав по всем фронтам. Ну ничего, все мы когда-то с чего-то начинали.
>>1225295 Причем тут мое время? Речь шла о json библиотеках. Твой критицизм по поводу андерскоров оказался невалидным.
>>1225541 >1. Gson хуже Moshi. Не веришь мне - вот тут один из создателей обеих библиотек это расписал: https://www.reddit.com/r/androiddev/comments/684flw/why_use_moshi_over_gson/ 2. "это идеальная состыковка со связкой ретрофит+окхттп". Идеальная как раз у связки okhttp(retrofit)+moshi, т.к. они обе используют okio для обработки потока байтов.
Друг, понимаешь ли в чем дело, для такой библиотеки, как парсер джсона, мне нахуй не нужно тратить время на документацию, вчитываться в какие-то ебучие особенности там, где этого можно не делать, чтобы в итоге проебать час-два времени, за которые я бы написал важный функционал. Ведь на выходе я получу все тот же парсер джсона. Когда я еще года 4 назад познакомился с Gson, то знаешь, почему я сразу перешел на нее моментально? Потому что там все элементарно - методы fromJson и toJson , тут без всякой доки ясно что они делают. Одна единственная аннотация, используемая постоянно - @SerializedName , для декларирования имен полей, ожидаемых в джсоне от сервака. ВСЕ. В это с нуля вникаешь минуты за 2-3 (что я и сделал будучи еще зеленым бегиннером). При этом всем я ниразу за те же 4 года не столкнулся с багами Gsona, с лагами или неправильной работой.
Касаемо Моши - я пару лет назад с ней сталкивался и даже читал доку, но послал нахер за ненадобностью - так как куча ненужных аннотаций, какие-то методы переопределять, нахуя блядь? Приверженец индусского кода? Специально прочитал сегодняя ее доку еще раз и все равно мало вьехал (не сильно и хотел) в особенности ее работы, так как уже сразу видно по тому, как организована работа с либой, то, как она будет показывать себя в деле. По факту для такой базовой библиотеки, как эта максимум, что надо - это показать как подключать зависимость и как применять в трех ситуациях, описанных выше. Остальное - бесполезная вода и графомания. То что ты нашел какое-то сравнение гсона и моши мне вообще похуй, я даже по ссылке не заходил, но могу сразу уверенно сказать, что итог того "сравнения" - это то, что МОШИ БЫСТРЕЕ ПАРСИТ 10000000 ОБЬЕКТОВ на 0.0001 СЕКУНДУ, ЧЕМ ГСОН, АХАХА, ГСОН НИНУЖОН, ТОЛЬКО МОШИ. Опять же , мне похуй на теорию, на практике, реальной практике, гсон сбоев не давал никогда и это факт.
>>1225624 вдобавок к этому люто орнул, увидев функционал HexColor в парсере Jsona. Нахуй он там всрался? Тоже самое, что Глайде добавить сканер Qr кода, а в Retrofitе - иньекцию зависимостей, кек.
>>1225624 >>тратить время на документацию, вчитываться в какие-то ебучие особенности. Там и не нужно вчитываться. Пример ее использования показан В САМОМ НАЧАЛА readme(пик1). Если у тебя уходит 2 часа на пробег по ридми, то у тебя более серьезные проблемы, чем выбор библиотеки для парсинга Json. >>что там все элементарно - методы fromJson и toJson >>аннотация, используемая постоянно - @SerializedName Признайся, ты ведь даже не открывал ридми по moshi, иначе ты бы увидел что они АБСОЛЮТНО одинаковые когда дело доходит до "простого" как ты выразился парсинга(пик2). >>так как куча ненужных аннотаций, какие-то методы переопределять, нахуя блядь? Я не знаю нахуя, я этим никогда не занимаюсь. Какие-то ToJson/FromJson аннотации. См. пик2 опять же. >>Специально прочитал сегодняя ее доку Либо пиздишь, либо ты говноглазый. >>То что ты нашел какое-то сравнение гсона и моши мне вообще похуй, я даже по ссылке не заходил Ну по тебе и видно, что ты из этих. "Не смотрел, но осуждаю" >> могу сразу уверенно сказать, что итог того "сравнения" - это то, что МОШИ БЫСТРЕЕ ПАРСИТ Там про перформанс ни слова, очередной обосрамс. Но он действительно быстрее Gsona, пруфы сам можешь поискать если тебе интересно. >>орнул, увидев функционал HexColor в парсере Jsona Опять показывается твоя тупость и нежелание читать текст черным по белому. HexColor это простой ПРИМЕР кастомного парсинга простых типов. В самбой библиотеке этой аннотации нет и не было.
Советую тебе не отвечать на этот пост и просто принять свое незнание экосистемы Android и нежелание читать больше 2 строк документации.
Что лучше с объективной точки зрения: 1. Загружать данные в БД и потом отображать на UI 2. Вызвать обсервер с БД, вызвать обсервер с Network объединить и поместить в БД, отобразя потом на UI? Как правильней получать данные с сети?
>>1226023 И ты, анон, тоже подожди. Опять же, где я говорил, что раз в универе не учат андроиду, то меня ему не обучали вообще? Любите вы, я смотрю, все додумывать...
Взял за основу приложения шаблон Navigation Drawer Menu. Чтобы сделать навигацию мне придется привлекать Фрагменты? Или уже что-то новое изобрели? Активити вроде тут не получится использовать, т.к. боковое меню будет пропадать при открытии нового активити. Если Фрагменты, то какой подход проще использовать? До этого пробовал использовать контейнер в макете контент активити в котором динамически меняются фрагменты. Еще видел вариант, когда в макете активити пишется fragment1, fragment2 и т.д.
Как загуглить такую ситуацию: нужно сделать, чтобы при нажатии на элемент списка отвечающего за секцию из него выпадали элементы item1.1, item1.2, item1.3 и т.д.
>>1226825 Речь изначально была о том что за джунами в универ сами приходят работтодатели. И того анона поправили что это бессмысленно приходить за анлроид джунами в универ.
Двач, в связи с тем, что питону скоро неизбежная пизда, решил выкатывать из него и вкатываться в андроид девелопмент. Что лучше объективно Kotlin или Java?
>>1227190 нет такого , что обьективно лучше. Есть джава, которая была по факту единственным языком разработки под андроид на протяжении лет 8-9. И есть Котлин, который стал офф языком на равне с джавой около года назад. Ситуацию с терками гугла и оракла думаю ты знаешь. Следовательно должно быть очевидно, что все идет к тому, что джаву рано или поздно просто выпилят, а оставят один лишь котлин. Итог: джава - огромная база и куча примеров в инете, но освсем скоро будет не нужна котлин - по сути останется в обозримом будушем единственным языком. Обратная конвертируемость с джавой является очень большим плюсом. Выводы, думаю, сделаешь сам.
>>1227190 Объективно если ты хочешь вкатываться вот прям щас то учить ты будешь Джаву. А потом не спеша осваивать Котлин когда постепенно от Джавы откажутся.
>>1227297 не согласен. Я автор этого поста >>1227259 если чо. Если только сейчас вкатываешься, то есть только в лучшем случае через месяцев 5-6 сможешь найти первую работу в этой сфере, то однозначно стоит учить уже котлин. А смысл сейчас полгода тратить на джаву, попасть на несколько собеседований и вылететь с них, узнав, что все более-менее уважающие себя конторы юзают котлин и требуют этого от новобранцев?
>>1227259 > Следовательно должно быть очевидно, что все идет к тому, что джаву рано или поздно просто выпилят, а оставят один лишь котлин. Хуесосина тупая, тебе уже объяснили, что Kotlin поверх JVM работает, весь Android SDK написан на Java.
>>1227307 малой, ты че агрессивный такой? >объяснили кто объяснил, где объяснил? ты совсем ебанутый? >Kotlin поверх JVM работает, весь Android SDK написан на Java. конченная малолетка, не шарящая в теме, я специально же написал по этому поводу: >Обратная конвертируемость с джавой является очень большим плюсом. то что сдк андроида написано на джаве никто не отрицает, также как никто и не отрицает того факта, что без поддержки джавы как языка разработки ты сможешь спокойно в котлин-коде вызывать джавовские методы из сдк.
>>1227307 да и спецом для тебя эксперимент: создай проект, где один класс написан на джаве, второй - на котлине, сделай в каждом по одному паблик методу. После чего пробуй вызывать в одной классе метод другого. Ты ооооочень удивишься тому, как это легко будет получаться и будет работать
>>1227345 Мань, понимаю что интересно читай всякие сферические теории в вакууме, но открою тебе секрет. Джун в любом случае макака. Джун не макака мидл. Так что не вижу проблем и сложностей с джавкой.
>>1227343 Конкретно в этой ситуации - да, ее выпилят. И нет, не из-за обратной совместимости. А из-за терок с ораклом, которые гугл откровенно доебали. То что ты написал (а выше - я) - это не причина того, что джавы не будет, это следствие сложившейся ситуации, при которой гугл постепенно выводит джаву из своей экосистемы, пытаясь делать это максимально безболезненно и либерально
>>1227380 Та че, я Котлин уже месяцев 7 юзаю, пока нареканий вообще никаких, очень быстро привык, null safety парадигма вообще топчик, очень ее в джаве не хватало. Сейчас когда приходится возвращаться в к старым джавовским проектам, то уже даже ощущение есть некой устарелости, что ли, когда на джаве код пишу... Так что как раз к котлину претензий никаких, а гуглам респект, что сделали основным именно его, а не обоссаный Го (который воистину полнейшее говнище)
>>1227390 >Ещё один ньюфаня. Откуда вы лезете вобще? Либо ты предоставляешь документы, где прямым текстом гугол пишет - мы отсекаем джаву из экосистемы и сейчас у вас есть только один язык - это котлин - либо иди нахуй. Я раньше съебусь из этой рашки, чем котлин станет единственным языком в этой параше. А съебывать я планирую лет через 5.
>>1227393 Например, я прекрасно помню времена 10-12 летней давности, когда все ломанулись с джавы на руби. Писали про это книги, статьи, тексты и посты, тысячами, буквально.
И где теперь тот руби? Стоит на ржавых рельсах в заросшем травой тупике, лол.
Про скалу так же говорили, чуть позже, что всё, это окончательный и бесповоротный джава-пиздец. И что?
Всё это суета сует и томление духа. А джава пребудет вовеки.
>>1227393 та я наоборот хочу, чтоб они под мостом нищенствовали за свою тупость, че мне их жалеть. Я им пишу исключительно потому, что меня бесит тупость в людях.
>>1227397 На данную секунду джава еще есть. Документы гугла такого уровня тебе не покажет никто, кроме Сергея Брина и Лари Пейджа. А теперь подумай, мамин сьебывальщик, и сложи воедину следующую инфу:
гугл срется с ораклом, которые владеют джавой гугл это заебывает после 100500 судов гугл ищут и быстро находят подходящий язык от JetBrains, заключают договор, делают их язык офф языком разработки. повсюду пропаганда что ЮЗАЙТЕ ОРАКЛ ОН КРУТ (сириузли, пройдись по их документациям в андроиде) ЧИСТО СЛУЧАЙНО сделана обратная поддержка для быстрого перехода с джавы на котлин вплоть до взаимодействия между собой классов, написанных на разных языках в рамках одного пакета. Сам сможешь додуматься, какой будет следующий шаг? Или совсем туп? Ясен хуй, что это произойдет не завтра, но верить на полном серьезе, что джаву не выпилят - просто верх манямирка и розовых очков
>>1227404 >КОТЛИН, а не ОРАКЛ, ошибся Ошибся с пастой?
>>1227403 > но верить на полном серьезе, что джаву не выпилят - просто верх манямирка и розовых очков Да мне похуй. Вообще хотел вчера потыкать котлин, но после того, как я не смог сделать во фрагменте newInstance, я узнал, что в котлине нет статика. И нужно это дело проворачивать через какой-то компанион обджект, или как это по другому назвать? Может быть костыль? И перевел свой пет проект на джаву. Хотя можно было бы конвертнуть на котлин и посмотреть как правильно, но этот пидор 100% поставит @Jvm...
>>1227412 >это они из Скалы спиздили. Как и процентов 80 котлина вообще. А остальное - из Груви. Я смотрел видосы, они и не скрывают этого. Но для меня это совершенно другой язык, хотя может я недостаточно его изучал. Хуй знает.
>>1227259 Тупорылый дегенерат опять вылез, я тебе все доступным языком объяснил. Проблема не в джаве, а в апи его классов, который твой любимый котлин тоже использует.
>>1227403 > ЧИСТО СЛУЧАЙНО сделана обратная поддержка для быстрого перехода с джавы на котлин ЧИСТО СПЕЦИАЛЬНО заявлен еще когда он был внутренним продуктом. Было долгое время, когда гуглу было настолько на котлин поебать, что с выходом нового андроид градл плагина котлин слетал у всех нахуй. Но ты то конечно этого не помнишь, ты же хайпажорить начал только после IO.
>>1227403 > ЧИСТО СЛУЧАЙНО сделана обратная поддержка для быстрого перехода с джавы на котлин вплоть до взаимодействия между собой классов, написанных на разных языках в рамках одного пакета. Это следствие того, что оба языка компилируется в Java Bytecode. Так же, как и Groovy, Scala и Clojure. Причем тут блядь гугл вообще, шизик?
>>1227530 Что бы там не говорили, джаву тебе все равно придется изучить, т.к. даже если начнешь с котлина, ты наверняка натолкнешься на такие моменты, которые тесно связаны с особенностью джавы.
>>1227530 Никто не говорит, что котлин дерьмо. Это вполне себе хороший язык, но не без минусов. Просто сейчас вокруг котлина развелось 2 типа шизиков. Первый >>1227403 который вопит о смерти джавы и каждый раз, когда видит код на джаве, начинает истошно вопить "а че не на котлине((((9 ретрограды!! джава рип!!". Второй - зеркальные первому дануы, которые когда видят код на котлине начинают вопить "нипонятнааа!!!11 на джаве пример нужон", хотя блять классы используются одинаковые. Использовать котлин нормально, форсить котлин ненормально, понятненько?
>>1209454 (OP) Собственно ищу и никак не могу найти подходящую и в тот же момент хорошую сборку пк для Unreal Engine (500-600 euro).Корпус и монитор есть.Собственно для проекта между Fantasy и Sci-Fi, который будет радовать миллионы двачеров и пикабушников за вполне обоснованную цену(сделаем скидку в 55 %).Вы вспомните про этот пост спустя 3-4 года.:3(И да мне тут сказали 16г б оперативы, и видяха больше 2 гб,на процессор что останется из денег.)Хожу услышать комплектации
>>1227596 > а че не на котлине((((9 ретрограды!! джава рип!! Но это действительно так. 2.5 года пишу на Котлине, Java(7) стала для меня сродни C++. На бэке то понятно можно и на джаве, т.к. там другие требования от языка и полная java8. Но если ты пишешь под Андроид и не пишешь на Котлине, то ты действительно "редатрд".
>>1227596 Тут ситуация еще проще. Половина треда просто глупые люди, которые не понимают значения выражения "Java Умрет, Kotlin будет единственным языком разработки". Да, как язык для разработки андроид-приложений она действительно умрет, этот анон >>1227403 все правильно расписал. НО она не умрет в принципе еще долгие годы, так как во-первых, ее еще используют, как минимум, в интерпрайсе (судя по тому, что тут никто этого не написал я делаю вывод, что для многих это новость), во-вторых, как тут многие заметили из приверженцев джавы и хейтеров котлина - на ней написано андроид сдк и оба языка компилятся в джавовский байткод. Тут можно провести параллель с ассемблером - на нем изначально писали абсолютно все абсолютно для всего, любой другой код так или иначе компилируется в машинный асемблер код. Ну и что теперь? Тут много людей что-то напишут на ассемблере? Правильно, во всем снг от силы анонов 10 таких наберется, потому что надобность в нем напрочь уже отпала. Вот точно такая же участь постигнет джаву в сегменте мобайл девелопмента. Да, котлин будет всегда иметь с ней совместимость и да, андроид сдк останется на джаве, но гуглы просто уберут ее поддержку при разработке (а я напомню вам всем, что АндроидСтудио - продукт тоже гугла) и на этом здешние местные хейтеры котлина соснут толстенного болта и останутся без работы. Самые ушлые поматюкаются и за полгода где-то перейдут на котлин, признав неправоту, остальных справедливо порешает рыночек. Можете даже этот пост заскринить, я гарантирую, что все будет именно так 1 в 1. И да, конечно же можно будет продолжать писать на джаве, и на груви и ДАЖЕ НА С++ приложеньки на ведроид, но такой подход практикуют менее 5% людей и это нигде нахуй не пригодится, ни на какую работу с такими "умениями" не возьмут, а единственный профит, который удасться с этого поиметь - заспорить с другом на сто баксов под пивко, что ты сможешь создать апк файл приложения без андроид студии, обходными путями.
Вообще мне кажется, что то, что я написал выше очень многие знают и понимают и так, но начать переходить на котлин мешает либо лень, либо отсутствие мозгов (а нахуй тогда в програмач пошли?), либо стадия непринятия в их мозгах. Кстати можете посмотреть на параллельную область в мобайле, а точнее, в иос разработку - там как бы уже отказались от богомерзкого и откровенно отвратительного обжС и кодят нормально на свифте, уже даже первое поколение разработчиков появилось, которые в глаза не видели обжС код, но при этом спокойно пишут приложухи на свифте и нормально себя чувствуют. Почему тогда в андроиде это все выливается в такие холивары и такое количество закостенелых консерваторов?
>>1227965 Свинье-деграданту нечего ответить. Ясно. >>1228049 Расписал хорошо кроме части про iOS. Сравнивать Котлин с глючным и косячным Свифтом как сравнивать Котлин со Свифтом.
>>1209454 (OP) Стоит ли учить лоадеры, хендлеры, битмапы и тыкать асинтаски вместе с родным хттп и парсить жсоны на 400 строк кода? Само собой, я обхожусь без этого говноедства. Но я переживаю, что меня спросят на собесе по нему и я всосу. Нахуй тогда такое устаревшее дерьмо вообще спрашивать?
>>1228049 >Половина треда просто глупые люди, которые не понимают значения выражения "Java Умрет, Kotlin будет единственным языком разработки". На котлине хорошо пишут те люди, которые до этого хорошо писали на джаве. Если человек сразу начнет изучать котлин то у него просто сложится неразбериха в голове, ты этого добиваешься? Даже в это время нужно начинать с джавы, и потом, имея бекграунд рассматривать альтернативу ему по котлину. Иначе ты просто соснешь хуй как при передачи контекста в анус твоей мамаши.
Что за пидарасы. Большинство примеров, документации, видео написано только с одним блядским классом. В реальной жизни нихуя не применимо. Ну вот как мне блять просто в этот ебучий Room в это сраное Entity впихнуть другой класс и query блять ебнуть? Сука нахуй.
>>1229325 В бандл пихают какие-нибудь примитивы типа строка? Объект презентера туда не поместить. Почему-то со всех сторон кличут про пересоздание активити в ведре, но пока самого простого и не глючного метода с записью флагов в манифесте не нашел.
>>1229333 Да, примитивы, Serializable, Parcelable. Фоновые операции надо закидывать в синглтон и доставать по id после пересоздания, либо ссылки на операции будут в презентере, который Moxy, Mosby, ViewModel, свой костыль.
>>1229336 Под фоновой операцией подразумевается работа текущая в презентере? К примеру есть проект https://github.com/startandroid/PinCodeScreen в нем используется даггер. Как понимаю, для сохранения состояния написан класс ComponentsHolder?
>>1229401 Не совсем. Когда весь стейт инкапсулирован в единое дерево. Компоненты (вьюшки) могут быть поделены и инкапсулированы как нужно. Компоненты подписываются на свой стейт в дереве состояний и диспатчат экшены в редьюсер. Редьюсер обновляет стейт в дереве стейта и затронутые изменением стейта компоненты-подписчики перерендериваются.
>>1229385 >Чем вьюмодель багованная? Мне не нравится LiveData, фактория вью модели и сам гугол. Раньше я думал иначе, но сейчас шлю нахуй это говно. Моху с реактивщиной - вот мой выбор.
хало почаны, как мне отхендлить interrupted exeption чтоб приложение не крашилось когда я запускаю Thread.sleep(), а пользователь выходит из приложения/жмакает кнопку назад и выходит с данного фрагмента?Неужели для этого нужно сервис юзать , чтоб Thread.sleep() отработал в любом случае? использую rxjava2
>>1236579 уже не нужно, нашел ответ. Если кому пригодится, то использовал вот это : LockSupport.parkNanos(TimeUnit.MILLISECONDS.toNanos(1000)); если юзать ету штуку, то никаких эксепшнов не вылазит
вкатываюсь в эту хуйню неспеша, за плечами бекграунд из c#, php и всякая поебень попроще.
представленные и найденные гайды или слишком тупые, которые тухнешь читать 200 страниц про ебучие условные операторы, или уже совсем люто сложные.
ищу книги (менее желательно), гайды, уроки или видосы (предпочтительнее) для тех, кто уже в теме ООП и понимает c-like синтаксис, но слабо шарит в ведроидах и мобильной разработке и их паттернах.
Заказчик выкатывает требование не показывать пуш уведомление, если приложение открыто на определенном экране. Как без костылей (например статических полей и прочей хуйни) связать пуш-интент сервис с определенными активити? Как лучше обрабатывать открытие активити с контентом по нажатию на пуш? По-моему лучший способ, который не ломает приложение и не требует множества костылей, это чистить вилкой таску FLAG_ACTIVITY_CLEAR_TASK, потом потом руками заполнять стек активити в пендинг интенте. А как анончик с этим справляется?
>>1249666 Вот тебе предпочтительный видос - "[Geekbrains] Android_2015". Есть вступление по Java и продолжение специфично для андроида, брат жив, зависимость етсь. Встречайте на ведущих торрентах страны.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности ведем себя няшно и поливаем друг друга лучами добра.
> Хочу вкатиться в разработку под Android! С чего начать?
С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Или для мазохистов: http://developer.android.com/training/index.html
Так же можно почитывать: https://www.amazon.com/Head-First-Android-Development-Brain-Friendly/dp/1491974052
Большинство приложений написано на Java, понимать ее на хорошем уровне обязательно. Полезные гуиды от анона:
https://habr.com/company/golovachcourses/blog/215275/ Смотри Головача
https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486
Два ресурса для закрепления Андройда на русском: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
https://commonsware.com/Android/ - толстая книга для гиков.
Так же можешь смотреть свежие лекции от Mail.Ru
https://habr.com/company/mailru/blog/345252/
https://github.com/ybereza/technotrack-resources - ресурсы к лекциям
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что?
После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http и прочее.
Дальше закрепляешь знания путем создания пару простых приложений на свой вкус.
>Не хочу пилить говнокод!
Добро пожаловать в в мир Android Architecture и паттернов проектирования.
Для начала тыкаешь Retrofit и RxJava и строишь приложения.
https://www.youtube.com/watch?v=YPf6AYDaYf8 - rxJava с нуля
https://www.youtube.com/watch?v=3jdvLrYZfB4 - на русском
https://www.youtube.com/watch?v=0IKHxjkgop4 - rxJava
https://www.youtube.com/watch?v=t34AQlblSeE - retrofit
Книги для развития:
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124 - паттерны
https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997 - Java
Дальше выбираешь на свой вкус: MVP or MVVM. Так же желательно понимание Dagger2.
https://github.com/ArturVasilov/AndroidSchool - уроки по архитектуре
MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
MVVM:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - свежие уроки от Димона
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально. Только не ной потом, что большинство примеров написаны на непонятной джаве.
https://www.youtube.com/watch?v=-H98SWHayL4 - свежие лекции на русском
https://www.amazon.com/Kotlin-Action-Dmitry-Jemerov/dp/1617293296 - библия
https://kupdf.com/download/kotlin-for-android-developers_59a05e2ddc0d60992a18496b_pdf - Kotlin for Android
https://www.udacity.com/course/kotlin-for-android-developers--ud888 - курсы Udacity
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Второе место по популярности jsников после ReactNative. Если совсем поехавший можешь начинать с него.
https://flutter.io/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные:
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, Godot, LÖVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2. И хотя бы несколько готовых приложений.
Полезные ссылки:
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg - канадский челик, поясняет за архитектуру и отвечает на разные вопросы на стримах.
https://github.com/toddmotto/public-apis - бесплатные API для создания приложений.
https://github.com/AlexeyZatsepin/Android-ORM-benchmark - бенчмарки на вопрос о том, какую БД выбирать.
Прошлый тред