24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что? После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite. Дальше закрепляешь знания путем просмотра видосов выше + Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее.
>Хочу изучать популярные либы и не быть говноедом! Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом. Retrofit - стандарт для взаимодействия с сетью. Вместе с ней можешь изучать либу okhttp3. Так же для справки можешь гуглить volley. RxJava - тяжеловесная либа. Одно из решений для выполнения кода в бекраунде. [YouTube] KotlinConf 2017 - RX Java with Kotlin in Baby Steps by Annyce Davis[РАСКРЫТЬ] - rxJava с нуля [YouTube] RxJava доставляет Артём Зиннатуллин[РАСКРЫТЬ] - на русском [YouTube] Managing State with RxJava by Jake Wharton[РАСКРЫТЬ] - rxJava [YouTube] Making Retrofit Work For You by Jake Wharton[РАСКРЫТЬ] - retrofit
Неплохо было бы и изучить MVP. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
> Есть что-то кроме нативных приложений на Java/Kotlin? - Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если совсем поехавший можешь начинать с него. https://flutter.io/docs/ - документация https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity Остальные: ReactNative — мочаскрипт во всей красе. - PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, первые три попытка в кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде. - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. - BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры! LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь? Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии, shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам), понимания СОЛИД и других паттернов проектирования. И хотя бы несколько готовых приложений.
>>1245739 Я тебе какой раз говорю, загляни в исходники мокси и посмотри как они реализовали фрагменты. Зачем изобретать велосипед, когда за тебя его изобрели?
Смотри, гуглы хранят презентер в дочернем фрагменте. Условно у тебя презентер в фрагменте, они в его childFragmentManager суют ретеин фрагмент, а уже в нем хранят презентер. Попробуй также, расскажешь об ощущениях.
Вы ебанутые? Зачем вы пытаетесь класс ViewModel из architecture support library переизобрести? Берите его и используйте, в чем проблема-то? Ещё и какие-то васянобиблиотеки для этого ищете, совсем ку-ку что ли?
>>1245769 Изобретая свой велосипед лучше начинаешь понимать чужие, особенно когда встает вопрос, почему именно то решение там применено, а не какое то другое.
>>1245769 >Зачем вы пытаетесь класс ViewModel из architecture support library переизобрести? Чтобы я, чтобы Я еще хоть что-нибудь взял из говноГУГЛОВСКИХподелок? Да никогда в жизни. Вот когда выйдет релиз 5-ой или 6-ой стабильный, вот тогда можно что-то там смотреть. А так не, нахуй надо. С опытом пришел к выводу, что гораздо профитней заставить баррикады со своими стек технологиями, в которых ты прожил и понимаешь как все делать, чем качать гугловские недовысеры, которые падают каждую секунду.
Решил клонировать один проект на гитхабе чтобы поглядеть чекаво там >ошибка синхронизации градл >не может найти андроид 27, но у меня установлен андроид 28 >мое ебало пикрелейтед >первая ссылка на стакоферфлоу говорит, что надо в билд.градл поменять циферку на 27 >при наведении курсора на билд.градл он превратился в <invalid> >мое ебальце пикрелейтед Короче просто установил апи 27 орео 8.1 и все заработало, мне почему-то казалось что каждая новая версия должна поддерживать старую, хотя бы прошлую версию апи.
>>1246615 чет я добич. Спасибо, что сказал, а то я нажимал далее, далее в курсе про разметку, где в итоге предложили подписаться за 500 баксов на продвинутый курс
Являюсь бекенд разработчиком (пхп обезьянка) вот уже года 4-5. Уже некоторое время смотрю в сторону android. Этот бекенд с его бесконечным пхп, питоном надоел досмерти. Есть ли опыт перехода из веба в андроид? На сколько сильно просядет зарплата в начале? В данный момент зарабатываю 3к долларов. Какие сложности могут быть? На java серьезно не писал, но новые языки не являются проблемой. Может быть какие то советы?
>>1247039 > Может быть какие то советы? Да. Не вкатывайся в андроид. Оно того не стоит. Во-первых, не ясно, убьет ли фуксия андроид, а веб не умрет никогда. Во-вторых у нас тут тоже полно ебли с версткой (разметка и стили приложения описываются в xml), даже больше, чем ты себе изначально представляешь. В-третьих, по статистике, треть всего времени кодинга на джаве ты обрабатываешь NPE (а это та еще головная боль), а котлин сейчас практически не используется в серьезных компаниях. Ну и на собесах обычно требуются знания архитектур, а про это сложно рассказать без практики, что является по сути еще одним фактором траты времени. В общем, ты потратишь кучу времени, нервов и трафика на стековерфлоу, чтобы получать чуть более, чем нихуя, рублей. А можешь навасянить скриптов на питоне, которые будут выполнять генерацию кода на пхп, и смотреть порно в альт-табе за >3к$.
>>1247047 > не ясно, убьет ли фуксия андроид, С чего ты взял, что андройд приложения могут и не запускаться там? Иди вообще нахуй.
>ремени кодинга на джаве ты обрабатываешь NPE (а это та еще головная боль), Ага, писать научись нормально. Сплошное пиздабольство. Но в андройд вкатываться все равно не надо.
>>1247274 >Что имеешь в виду? Можно было бы подправить говноеда, и сказать, что тебе нужно чувствовать как все работает внутри. Абстракно следить за задвижками хендлеров например, вот один из анонов любит предствлять себя волшебником по этой части. Если действительно хочешь - вкатывайся. Вон в шапке все расписано.
>MVC/MVP/MVVM? Больше похожи на паттерны, структуры, которые облегчают жизнь.
>>1247228 > Но в андройд вкатываться все равно не надо. Почему?
Веб меня уже заебал. Веб это кучи говна наваленные людьми, которые слабо представляют что они делают. Кругом легаси и говнокод. Вот сейчас мне нужно переписать один модуль. Переписать потому что за 5 лет существования код превратился в такой кусок говна что в него просто невозможно вносить изменения, только смазывать что бы совсем не развалился. Метод, принимающий 4 флага, лесенки в 15 табов (60 символов!), статика, магия и прочие веселые штуки. И тотальная некомпетентность веб разработчиков. На собеседование приходит мидл/сеньер и про ООП говорит "ну это классы с приватными методами, а еще есть наследование". Про solid(!) сеньеры через одного могут пояснить. Мидлы в лучшем случае каждый пятый. А если на собесе соискатель может рассказать про sql инекции, xss, csrf то тебе повезло. Про менее известные уязвимости как например xml injection или race condition мне вообще смогли рассказать человека 2-3 за все время что собеседовал людей. Недавно один коллега, сеньер ага, мне на полном серьезе доказывал что oauth2 это протокол аутентификации, ведь мы убеждаемся что это именно тот человек. А rbac это авторизация, ведь мы даем права. Надоело вот это вот все.
>>1247312 > Веб это кучи говна наваленные людьми, которые слабо представляют что они делают. Кругом легаси и говнокод. Вот сейчас мне нужно переписать один модуль. Переписать потому что за 5 лет существования код превратился в такой кусок говна что в него просто невозможно вносить изменения, только смазывать что бы совсем не развалился. Метод, принимающий 4 флага, лесенки в 15 табов (60 символов!), статика, магия и прочие веселые штуки. И тотальная некомпетентность веб разработчиков. На собеседование приходит мидл/сеньер и про ООП говорит "ну это классы с приватными методами, а еще есть наследование". Про solid(!) сеньеры через одного могут пояснить. Мидлы в лучшем случае каждый пятый.
Так ты ведроразработку описал. > race condition Ваше же пыхаговно однопоточное.
>>1247668 >Ну может человек не любит ебаный xml Зачем вообще тогда в андройд идти с такими знаниями? Пущай в пхп макаку перекатывается. Учить либы, ради того, чтобы просто не связываться с хмл, ты тоже опущенец?
>>1247671 Парсинг xml сам по себе создает тормоза. Учить там в анко нечего, просто удобный dsl. Я им не пользовался, но вроде там все ок. Охуенные у тебя логические связи, кому-то не нравится верстать в xml рррряяяяя неасиляторы пиздуйте в пхп.
>>1247651 > The plugin also supports converting layouts from the XML format to Anko Layouts code. Open an XML file and select "Code" → "Convert to Anko Layouts DSL". You can convert several XML layout files simultaneously.
Хули это автоматически не работает? Кликать еще что-то, и каждый раз переконверчивать. Так то идея заебись, верстаешь хмл спокойно с нормальным превью, а в коде гоняешь эффективную реализацию.
>>1247886 Как же я заебался с автоматических штучек в студии, и так все лагает, а иногда тупо надо чистить кеш студии что бы разлагало. Лучше уж ручками. Ну или напиши таску к грейдлу хули. Пусть пройдется по всем layoutам и сконвертит. Но мне кажется этого не делают, так как достоверно не понятно какие layoutы надо конвертить, ведь есть те которые мержаться-инклюдятся.
>>1247930 Я тоже на маке, но вот недавно после недельного перерыва вернулся, а тут апдейт и хопа ничего не работает, потыкался помыкался, а потом коллега сказал что у него тоже самое было месяцок назад, помогла очистка кеша.
У меня просто проект дохуя перегруженный кучей говна которое на каждый пук че-то там автоматически обновляет-синхронизирует, срет ошибками ехидно просящими их отправить гуглу/жидбрейнсу/аллаху/разработчику плагине и тд.
>>1247767 >Охуенные у тебя логические связи, кому-то не нравится верстать в xml рррряяяяя неасиляторы пиздуйте в пхп. В андройде нужно как минимум года три, чтобы потом пересаживаться на всякие анко хуянко и недокотлины.
Если ему начальник сказал вкатываться, и он начал с анко, то этот человек тот еще говноед. Я бы ему посоветовал хмл для начала.
Сап, аноны, подскажите, есть ли инструмент для загрузки svg-изображений по урле и последующим отображением в ImageView? Все что нашел на даннй момент - это некая надстройка над глайдом, но там во-первых ебаный вырвиглазый костыль, для которого надо отдельно заводить 4 класса (в самом глайде их нет) и отдельно подгружать либу для свг поддержки, а во-вторых даже с этим ебучим костылем свг изображение после загрузки начинает в ImageView залазить на картинку-плейсхолдер (он не убирается, как при загрузке нормальных картинок).
Мимокрокодил c с платиной на связи. Как вы управляете данными? Если мне в одной вьюхе нужно отображать данные, а вдругой эти данные можно изменять, что нужно делать? Может есть статья как управлять состоянием приложения с примерами?
>>1248605 >Если мне в одной вьюхе нужно отображать данные, а вдругой эти данные можно изменять, что нужно делать? КардВью это тоже вьюшка, чекбокс - это тоже вьюшка. Твой вопрос некорректен. Есть множество способов, например, повесить слушатель.
>Может есть статья как управлять состоянием приложения с примерами? Состояния чего? Переворота, передачи данных, потери данных? Ты можешь расписывать ситуацию, а не ковыряться в носу и кидать сюда свои никчемные козюльки?
>>1248612 >Ты можешь расписывать ситуацию, а не ковыряться в носу и кидать сюда свои никчемные козюльки? Деб, ты сам пример в гринтексте выделил. >Если мне в одной вьюхе нужно отображать данные, а вдругой эти данные можно изменять
Вот у меня есть некоторые данные: userName: String и т.д.
В нескольких местах userName отображается в текстовых полях. В одном месте есть поле с вводом текста, которое устанавливает значение для userName. При установке нового значения userName, я хочу чтобы у меня переренделились все места, где у меня используется userName и подставились новые данные.
Как мне например получить доступ к этим данным можно, из любой точки программы?
>>1248643 Погуглил, получил Репозиторий + Rx, нотбед. И если мне нужен этот репозиторий где-либо, мне его просто как зависимость прокидывать с помощью DI?
>>1248651 >При установке нового значения userName, я хочу чтобы у меня переренделились все места, где у меня используется userName и подставились новые данные. Ну, можешь обмазаться ливдатой. Там можно подписываться на изменения и прокидывать эти изменения даже проще, чем на рх.
>>1248850 >Тип это костыль ебаный, лучше RX взять? Тащить РХ ради одно этого - не самое лучшее решение. Ты сам решай, что лучше делать. Твоим вопросом вполне себе можно навешать листенеры интерфейсы и все. Костыльно, но зато нативно. Либо чтобы не пердолиться лив дата, но она еще сырая. Как и остальные либы от гугла тоже.
>>1248895 > лив дата сырая Что блять сырого может быть в обычном паттерне обсервер, аутист? Там даже из многопоточки один postValue, который через handler отрабатывает.
>>1249015 Хватать фразу из контекста и переворачивать ее в сторону паттерна - ты вообще манядебил? Лив дата - сплошное говно когда ты пытаешься внедрять более глубже. Там целый баг связанный с фрагментами фиксили год, очнись, дебич.
Как кастомизировать стандартный UI гугл карт? То есть мне нужно эти стандартные кнопки перенести в другое место и, было бы неплохо, поменять иконку некоторых из них. В доке нашел только как отключать и включать всю эту хуйню.
>>1249812 ебать дибил. >айос с точки зрения пользователя переход в иос после андроида будет адской мукой, так как айос - кастрированная до невозможности система, без кучи плюшей и без возможности настроек и кастомизаций. с точки зрения девелопера, то с первых минут ты охуеешь с уебищности икс кода по сравнению с АС, а потом охуеешь с того, сколько инструментов при разработке дял иоса попросту нет. Та че тут придумывать - посмотрите на количество стандартных предлагаемых вьюх там и там.
>фуксию мань, она еще даже не в бете, а только на этапе сухой разработки и одной единственной демки. Куда ты вкатиться хочешь? Так-то я за фуксию и понимаю, что она вытеснит андроид, а затем в конкуренции сильно попустит всякие иосы и макосы, но это будет только чеерз несколько лет. Пока можно смело вкатываться в андроид (но на котлине, не на джаве)
как же заебал ебаный андроид. на ровном месте отвалился proguard-rules.pro и теперь proguard кастрирует аннотации ретрофита. ну вот как так, теперь даже обновлять студию и градл не надо, на ровном месте хуйня происходит
>>1250302 хуйня это все, чем это лучше чем gradlew clean ? сходил на обед и все заработало, хотя комп и до этого перезапускал кароч кодить это говно, хорошо что я этим занимаюсь от силы пару часов в день
Аноны, вопрос не по андроиду, но по котлину. Нужно создавать разные реализации одного интерфейса в зависимости от класса аргумента. То есть на первый взгляд классический Factory method из GoF. Но есть идея написать это всё даже уже написано не в классах, а в функциях. То есть: 1. пишем несколько разных функций, возвращающих разные реализации одного интерфейса 2. упаковываем всё в map вида <KClass<out Any>, InterfaceOfCreatedClass> 3. при создании получаем функцию создания в зависимости от класса аргумента из мапы 4. вызываем функцию
То есть нет иерархии Factory-класса и явного if'а, но зато при добавлении новой функции надо добавить её в класс и затем в мапу. Как думаете, Омск или нет, и если Омск, то насколько? в инете везде предлагается обычная фабрика, просто через companion
>>1250129 >с точки зрения пользователя переход в иос после андроида будет адской мукой, Ахаах, ну конечно. Держи в курсе. И там и там нормально, только такие пидарасы как ты выдумывают какую-то дичь.
>>1250379 после nexus 5 пару месяцев ходил с iphone 5, так и не пересел. Отсутсвие кнопки back, не понятно как скрыть клаву, не понятно как работающие кнопки (надо тапнуть раз 10 чтобы сраная кнопка кликнулась) + отсутсвие программ аналогов с ведроида (или paid only). возможно это из-за того, что 5ый айфон устарел морально, может в в восьмом все получше (мб купить?)
>>1250417 >после nexus 5 пару месяцев ходил с iphone 5, так и не пересел. Отсутсвие кнопки back, не понятно как скрыть клаву, не понятно как работающие кнопки (надо тапнуть раз 10 чтобы сраная кнопка кликнулась) + отсутсвие программ аналогов с ведроида (или paid only). возможно это из-за того, что 5ый айфон устарел морально, может в в восьмом все получше (мб купить?) Разрабатывать в более нормальной экосистеме и получать за приложения деньги, и жрать говно - это разные вещи. Тем более ты вообще написал не по теме.
>>1250419 Это xcode и анальная привязка к железку яблока у тебя нормальная экосистема? Как там у вас, уже можно без iTunes песенки себе на телефон скинуть?
>>1250422 Ты ничего не менял, а proguard уже deprecated, используй R8. Не используешь - сам дурак, никто не обещает тебе поддержку устаревших вещей в новых студиях.
>>1250419 >Гугли отличия, малой. всмысле гугли отличия? ты ебануты? что загуглить, чем gradlew clean assemble отличается от build -> clean, build -> rebuild ??
>>1250435 >погуглил, ничем не отличается. Ну вот, теперь знаешь их отличия.
>>1250423 >Это xcode и анальная привязка к железку яблока у тебя нормальная экосистема? Как там у вас, уже можно без iTunes песенки себе на телефон скинуть? Тебе тоже нравится слова из контекста вырывать? Я вообще песенки на ютубе слушаю.
>>1250428 > используй R8 Мне может и D8 использовать, чтобы крашилось все к хуям? Его же даже отдельно обновлять нельзя, а нужно блять накатывать canary сборки с фиксами D8. Девелопмент экпириенс на кончиках пальцев просто. Боюсь даже спрашивать, что там с R8.
Проще градл плагин не обновлять, все равно студия со старыми работает нормально.
>>1250614 > какие могут быть сложности с UI и обращением по API Нуууу, для легких проектов сложностей нет. Когда придет время разгребать легаси, где в местах краша приложения логи подтираются, а приложение "перестартывается" поймешь. А потом ты еще сидишь с умным лицом разгребаешь это говно, ух какой молодец. Зато можешь гордо себя кличить андройд девелопер т.е. умеющий копаться в говне - как впрочем и любая профессия говноеда программиста.
>зачем нужно для этого знать паттерны, солид? У тебя глаза вытекут от 1000 классов, беспорядочно смешавшихся друг с другом. А потом приходишь на проект - и тебе дают легаси. А дальше читаешь выше.
>>1250614 >какие могут быть сложности с UI и обращением по API :^)
Поворот экрана, повторные запросы, состояние, пропало соединение, обновить хуйню в 100000 местах. Спрячь клавиатуру, покажи клавиатуру, подстройся под клавиатуру, ах нету апи, нуну. А теперь сделай градиент вот именно вот так. Ах что ты, ведроид не умеет в такие углы? Ну сделай кастомный хули ты. Снаружи не видно малеха.
>>1250628 >Котлин потому и начинают использовать Я около 10 раз уже говорил в этом треде и продолжу говорить, котлин используют люди которые заебались писать на джаве 5+ лет и они хотят что-нибудь новенького.
Весь ваш хайп котлина неоправдан. Пока вы достаточно глубоко не проникнитесь в джаву кор и не перечитаете около 3-ех раз Effective-Java-3rd-Joshua-Bloch, вам в котлине делать нехуй. Перекатитесь в котлин - а потом соснете. А почему это ебать у меня NUL POINTER EXCEPTION in the recyclerview!!
>>1250614 > зачем нужно для этого знать паттерны, солид Да нахуй это не нужно. Быстро хуяришь, закрываешь в таски в жире, получаешь премию и съебываешь на следующую галеру. А пусть такие как он >>1250619 потом это говно и разгребают. Рабочая схема, базарю.
>>1250637 > Быстро хуяришь, закрываешь в таски в жире, получаешь премию и съебываешь на следующую галеру Видимо ты не такой умный, рано или поздно тебе скажут хули ты прыгаешь по хуям. Более чем уверен, что ты так несможешь и года два продержаться.
>>1250379 >Ахаах, ну конечно. Держи в курсе. И там и там нормально, только такие пидарасы как ты выдумывают какую-то дичь.
Рили? Как человек, работавший в обеих средах, оффициально тебя обсыкаю. 1) Отсталая и уебищная система импорта библиотек в хкоде отстает не то что от gradle в АС, а даже от эклипса, в котором надо было jar-файлы добавлять. Ебаное позорище в 2018 году открывать отдельно в системе подфайл КАК ТЕКСТОВЫЙ, копипастить туда библиотеку, а потом ЧЕРЕЗ КОМАНДНУЮ СТРОКУ писать pod install. Для сравнения - в ас всей этой херней занимается гредл и программисту надо просто в гредл файл вписать библиотеку и нажать на кнопку синхронизации. Все.
2) В одной из последних версий нельзя было создать проект с видеоплеером (AVPlayer), проект просто вылетал с ошибкой. Необходимо было создавать проект в более ранней, а потом открывать через новую. Еще худший зашквар, чем пункт 1, как это блядь вообще возможно, чтоб версия среды влияла на работу проекта?
3) Полнейшая отсталасть хкода в плане доп инструментов для разработки, а точнее их отсутствие. Я про всякие мемори мониторы, работу с свг файлами, установка всяких плагинов типа фабрика, фаербейза и т.д. Ебал я в рот устанавливать отдельно приложение фабрика, которое в фоне мне отслеживает скомпилинный билд в хкоде.
4) Отсутствие возможности записывать видео с экрана устройства. Да, это уже камень не в сторону хкода, а вообще ко всему говнояблочному. Мне лично очень не хватает этой функции, так как часто определенный момент в работе приложение полезно показать заказчикам на видео, а в андроиде это делается элементарно.
>>1250635 не знаю, как у тебя, криворукого, получается нпе в recyclerview (уже логичнее было б в адаптере придумать его), вообще котлин - это язык, который максимально пресекает возможности появления нпе, которые в джаве - самая частая ошибка абсолютно у всех - от бегиннеров до синьоров. А хайп котлина оправдан свежестью и современностью, которой в джаве оч не хватало (я про экстеншны, операторы when, as, более удобное приведение типов, автоматичествое связывание объекта вьюхи с вьюхой в хмл файле и кучу всего остального), так как у джавы по сути развитие серьезно осталовилось после выхода версии 8.
>>1250814 А по зп как? Я читал, что у ios повыше, так как аудитория под ios более платежеспособна. И что разработчика под ios сложнее найти, чем разработчика под android.
Я вот думал, что мне нужно железо помощнее, 8 гигов оперативки, так как я запускал hello world и студия собирала его больше минуты. Думал, что если буду вносить какие-то изменения в проект, то снова придется ждать эту минуту. Но все не так. Это только при первом запуске на сборку, повторные проходят гораздо быстрее. Ubuntu 17.10 + Celeron 2.16GHz x 2 + 4 gb ram, запускаю на реальном устройстве (да, для того, чтобы запустить в виртуалке нужно железо помощнее).
Ребят посоветуйте библиотеку либо гайдов для работы с галереей. Хочу сделать выбор фоток как в телеграмме/кэйт мобали/инстаграм. Интернет перерыл и вообще нихуя не нашел.
Хочу старенькую игру с кнопочных мобил портировать на андроид. Знания в языках почти нулевые, но я хочу сделать точно так же как в порте gravity defied, т.е. просто под самой игрой сделать раскладку конпочного телефона. Короче сейчас можно все это делать с помощью эмулятора, а я хочу чтоб этот эмулятор был уже встроен в саму игру и я мог запустить ее у себя на мобиле. Мне кажется что задача простая, просто я вообще без понятия в какую сторону смотреть. Перелопатил половину инета и нашел только форумы с сообщениями 2007 года про порт на кпк. Если кто шарит подскажите пожалуйста с чего начать и что изучать и вообще так ли вс просто как я себе представляю.
>>1251082 Какой тебе гайд епт. Ебашишь свой боттом шит с селектором в ресайклер вью. В него подгружаешь картинки курсором из контент провайдера по uri галереи (загуглишь его), хуяк хуяк и в продакшн.
>>1251085 >Если кто шарит подскажите пожалуйста с чего начать и что изучать и вообще так ли вс просто как я себе представляю. Пишешь заново игру для себя. Игры - в другой тред, чекай шапку.
>>1252886 Как бы все новые проекты пилятся на котлине, чего год назад не было. Старые джавовские поддерживаются на джаве, но любой кодер, который работал с котлином прекрасно понимает, что джава - очень отставшая. Некоторые проекты, не успевшие сильно разростись, переводятся также на котлин. Более того, на должность даже джуна андроид девелопера тебя уже хуй возьмут без знаний котлина из-за причины, указанной первой в этом посте. Контора, в которой кодеры не знают котлина, а до сих пор юзают джаву оффициально будет зашкварена и попущена (то я в шуточной форме конечно, но ты понял, что будет с ее авторитетом).
И я, кстати, как только в прошлом году гугл сделал офф поддержку котлина в качестве языка разработки, в этих же андроид тредах писал, что 1 в 1 так и будет. Время показало, что я был прав. А еще буквально месяца полтора назад я тут же писал, что пройдет года 2-3 и джава вообще в андроиде будет юзаться по минимуму и что вырастет уже минимум одно поколение девелоперов, которые будут знать только котлин, а джава им нахуй не всралась. Причем я даже просил мой пост заскринить и некоторые аноны это сделали. Такие дела.
>>1252898 > которые будут знать только котлин, а джава им нахуй не всралась. Покормил зеленого. Ты же даун да? Достаточно сказать, что котлин базируется на джаве. Даже в котлине ты можешь словить нпе. Крч, иди нахуй) Знаешь, спорить о таких вещах на борде - это зашкварно, да ты и сам к этому можешь прийти. Один хуй о чем спорить с таким человеком - не понятно. А еще лучше дарт юзать, а знаешь почему? Потому что уже через 2-3 года выйдет фусия и твой котлин нахуй никому не будет нужен. Такие дела.
>>1252913 >Даже в котлине ты можешь словить нпе в теории да, но если ты ловишь его на практике, то ты откровенный даун, потому что где-где, а в котлине он пресекается по максимуму. > Ты же даун да? Достаточно сказать, что котлин базируется на джаве Да, любой язык на чем-то базируется. И что теперь, ты у нас тут знаешь все языки? Или может все С-подобные языки? Ты же сейчас сам обосрался с таким заявлением. По твоей логике все должны еще ассемблер знать. > А еще лучше дарт юзать, а знаешь почему? Потому что уже через 2-3 года выйдет фусия мань, я не хочу тебя огорчать, но там будет свитф, который на 90% схож знаешь с чем Правильно, с котлином!
>>1252898 > Старые джавовские поддерживаются на джаве, но любой кодер, который работал с котлином прекрасно понимает, что джава - очень отставшая Как "кодер" который пишет новые проекты на котлин заявляю, что мне вообще уже поебать на каком языке писать. Если завтра гугл выкатит пистон фор андроид, то буду на нем писать.
>>1252898 > Причем я даже просил мой пост заскринить и некоторые аноны это сделали Хуеть у тебя, борщехлеба комнатного, самомнение конечно. А то что котлин сам по себе не состоятелен и требует знания JDK, ты в очередной раз решаешь пропустить.
>>1253040 > я нормально спросил что там у вас с котлином Василий, ну хватит уже тролленькать. Ты каждый раз с новым тредом сюда приходишь и приходишь. Вась, ну перестань)
>>1252898 >Причем я даже просил мой пост заскринить и некоторые аноны это сделали Я вижу ты уже подготовился к новому учебному году и будет чем похвастаться среди одноклассников.
Объясните почему вообще нельзя было сделать как в десктопе? Грубо говоря: window = Window() box1 = Box() box2 = Box()
a.add(box1) a.show_childrens() показали одно содержимое a.destroy_childrens() удалили a.add(box2) a.show_childrens() показали другое содержимое a.destroy_childrens() удалили и.т.д Нахуя было выстраивать эти деревья из всяких менеджеров-хуенеджеров, активити-хуивити блять, контексты, интентсы и прочая хуйня?
>>1253563 >Нахуя было выстраивать эти деревья из всяких менеджеров-хуенеджеров, активити-хуивити блять, контексты, интентсы и прочая хуйня? Почему вообще начали делать кружку? Нахуя было изобретать круглые формы, ручку и прочую хуйню, если есть нативное средство - ЛАДОШКА. Я же могу с рук пить водичку. Нахуя мне кружка сдалась?
>>1253567 >В шапке про фуксию ни слова. Тем более только недавно стало известно, что в 2020-2022 году она заменит дроида. Ты еще доживи до этого времени, малец.
>>1253561 >Мне похуй. Я иос знаю, если скажут свифт - значит свифт. тогда хули ты тут разнылся?
>Отвратительно. Что отвратительно? Знать котлин? Ты же сам знаешь свифт, который на 95% схож с котлином, тебе не отвратительно? Ебать как меня заебали дауны, лезущие из всяких /b/ уже даже сюда
>>1253941 А что, даггер2 рх2 и прочая хуйня популярны? Это же как стандартный стек технологий. Ну а котлин, я повторяюсь, параша. Только неосиляторы пишут на них.
>>1253941 мое саммари: самый лучший способ научиться android разработке - учится у компаний, организующий курсы или берущих интернов. Попасть на собеседование лучше через рекомендацию. Учавствуйте в коммюнити и обзаводитесь контактами, круг андроид разработчиков не так велик.
>>1253972 Еще запомнилось, по поводу шаринга знаний:
Разговор финансового директора и тимлида. -Вот мы их научим на курсах и они потом уйдут к другим. -А что, если мы их не научим, и они остануться у нас?
>>1253995 >курсы e-legion Сейчас они стартовали беспатный блок на курсере где?
Бесплатные блоки, курсы, ляляля. Шапки вполне достаточно, чтобы за 3-4 месяца понимать базовые принципы построения апп. В основном дело лишь упирается как скоро ты набьешь руку в построении необычных интерфейсов и реализации анимации под нее. Все. Курсы для даунов. И те кто платят деньги дауны - когда все можно найти в интернете.
>>1254091 >А какой сервер можно поставить Самый лучший сервер - это сервер поставленный самостоятельно.
Я тебе сказал читать про okhttp3 и про то, как с помощью него можно "логировать" успешные или неуспешные респонсы и читать получаемую информацию. Хватит притворяться тупым.
>>1254014 >Все. Курсы для даунов. И те кто платят деньги дауны - когда все можно найти в интернете. Так они сделаны для тех кто не может. Я бы не напрягался вообще, все равно эти люди не смогут никогда работать после этих курсов, пару раз потыкаются, их нахер пошлют и пойдут обратно в свои старые сферы.
>>1253971 >Ну а котлин, я повторяюсь, параша. Только неосиляторы пишут на них. у меня появилось подозрение, что уже в третий андроид-тред подряд забегает один и тот же анон (после школы), который только и делает, что засирает треды своим хейтом котлина. Ведь все равно ничего осмысленного от него нет.
Вообще забавно, ведь если бы ты хоть чуть-чуть уделил времени и ознакомился с языком, то увидел бы, что в котлине ты можешь в ОДНУ (!!!) строчку писать классы, которые на джаве ты писал бы строк в 20+. На котлине нет убогих findviewbyid. Зато есть компаньоны, кастомные экстешны, куча новых операторов. Та же нул-сейфти парадигма чего стоит. Хотя ладно, зачем я это пишу, если ты, малой, снова напишешь тут, что котлин херня и будешь это писать в каждом андроид треде?
>>1253941 > Это охуенно анон Параша, только набрасывают и воду льют без углубления. Пидор из яндекса так вообще там на понтах сидит с ебалом что всё и все говно.
>>1254282 Параша, но ты конечно же можешь лучше, не так ли? Ты же такой невьебенный мудила, который делится своим супер важным мнением и может предложить лучше? Мне кажется, ты можещь только соснуть хуй, причем сейчас же.
>>1254264 >С такими же успехами мог научиться гуглить. Что нагуглить то? Одаренный ты наш? Мнение /pr по мобильной разработке, я мог это нагуглить? Не индиго ли ты часом?
>>1254384 Нахуй с тобой я вообще переписываюсь блять? Гуглить? Ты что даун? Даже последняя droid кон конференция в Берлине была чисто на котлине. Этот язык пришел надолго. А теперь иди нахуй.
>>1254934 Сделай мне автоапдейты репозитория через воркменеджер, обновление при запуске и пулл ту рефреше, список приложений с иконками и описанием, экран конкретного приложения с инфой как сейчас, поиск по тексту и группировку по категориям. Установку апк делай через простое скачивание даунлоад менеджером и открытием установщика. Остальная срань мне не нужна. Не забудь про нормальный дизайн https://material.io/design а не вырвиглазную хуйню что сейчас. Работы наверное недели на 3, но ты справишься ;)
>>1255306 >Как продвигать прогу в среде конкуренции? Реклама в ресурсе, на которое твое приложение ориентируется. Это же очевидно. Я что, настолько с отбитыми даунами здесь нахожусь?
>>1255304 >УЧИЛСЯ ПОЛ ГОДА >@ >ДЕЛАЛ ПРОГУ ПОЛ ГОДА >@ >ВЫСТАВИЛ В МАРКЕТ Скидывай свою прогу. Посмотрим на твой говнокод.
>>1255355 Гугл сама подбирает юзеров по интересам. Или ты про рекламу в ютубе и подобном? Ну там наверное дохуя стоит. Может в тг каналах поищу. Думал за день будет миллион закачек и 5миллионов кэша, лул.
Ссыль ссыкотно кидать пиздос. И выставлять в маркет тоже было. Я такое чувствовал только лет 10 назад когда писал впервые сообщения на форуме.
>>1255362 Если до этого никогда не сталкивался с прогачем - то вменяемо, не более. За пет проект сойдет 3-чка, за идею - 1. Кстати, сколько там гугл требует платить за выкладку? 3к?
Вообще была первая идея гадания на картах таро замутить, но мне еще научиться надо и это спорная тема. Если кто-то сча начнет такое же делать, пиняйте на себя))0 Что-то вроде стартапа убера и тд я мутить не умею и идей супер пупер нет, хотя думаю реально походу научиться кодить. Тут так же было: что-то непонятно? Веллкам ту стаковерфлов.
Хотя бы на работу по андроиду охотнее с такой прогой возьмут?
>>1255370 >Что значит "пет проект"? Это значит, что выше единицы это не тянет. Вот когда выйдет какое-нибудь клиент-серверное у тебя, тогда уже и разговаривать можно. Что-то на уровне безумных китайских поделок.
Почему хейтят котлин? Кода в 2 раза меньше стает, писать легче, лямбды хуямбды. Пишу 4 месяца полет нормалный. Алсо есть новости по релизу androidx? Хотеть перевести рабочий проект на это говно заказчику вообще похуй что там в проекте
>>1255414 >Пока 2.0 не выйдет особо не вижу причин. а мне бы корутинчиков >Лямбды и в джаве есть. с какой там версии АПИ поддерживается восьмая джава? >Как и прочие забагованные фичи от джекпака гугла. Да ладно, порой выручают. Тот же рум, ворк менеджер очень хороши
>>1255442 >Просто съеби pic > у ворк менеджера баги. Конечно баги, последняя версия 1.0.0-альфа8. Но для несложных задач я им файлы выгружаю и загружаю подходит вполне. Жду когда напилят колбеки для прогресса джобы, а то сейчас самому нужно в рум сплевывать прогресс. >Ты хоть работаешь блять? Сука, одни безработные втирают нахуй про супер пупер технологии. Ага, конечно, иди нахуй. >>1255381 это я. Под андроид пишу с 13го года, давно хочу свалить на что-то другое, но лень
>>1255495 >Объясни почему мобайл это прибыльно, если не лень. Хватит гнаться за прибылью. Делай то что нравится и все. В мире \пр всегда будут деньги.
>советуешь валить на работу в начале или делать свои проги? Или всегда выгоднее на работе? Следовать советам с двачей, ты дурачок? Читай шапку. На работе ты лишь до автоматизма вещи накручиваешь и наступаешь на грабли, по большей части из-за невьебенного UI от дизайнера.
>>1255533 Я прочитал шапку вкратце. Ну понятно что там нет ответа на мой вопрос, так как имеет значения ещё мой контекст. Кароче, наверное скоро начну новую прогу в маркет пилить. Додвачевалсядевелоперся
>>1255574 >Ну понятно что там нет ответа на мой вопрос, так как имеет значения ещё мой контекст. Кароче, наверное скоро начну новую прогу в маркет пилить.
От того, что ты сделаешь аля кнопочка - текст, толку никакого не будет. Если ты не можешь найти ответы на вопросы свои в шапке - очень жаль. Можешь продолжать делать говно дальше.
Нашел аналогичную прогу какой-то чувихи. Приложение в маркете пол года, рекламируется и всего лишь 5000 закачек. Мне пиздец.
Но в то же время кучу прог откровенно написаных на скорую ручку, так сказать, с кучей рекламы имеют по 100к+ закачек. Почему так? Наверное таки идея решает больше всего. Начался какой-то хайп? Хуяк прогу по теме и ловишь лаве. Изи. Наверное.
JAVA насмотревшись на кашу С++ отказывается от unsigned types @ Больше нет путаницы и страданий в числовых типах. @ KOTLIN в 1.3 добавляет unsigned types
>>1255787 Когда работаешь и не знаешь что накатить unsignet int или int и не факт что он еще 32 бита. Ох да бро я тебя понимаю. Но в нормальных языках берут уже лонги, знаковые (и не отлаживают говнище когда от нуля отнимают единицу и получают значение больше нуля)
А когда формат файла подразумевает пердолинг с unsigned long long - то начинается анальная боль, BigInteger и фрактал ебучего бойлерплейта с методами вместо операторов.
А когда ты хочешь в интырпрайз, то пердолишь аналогично BigDecimal для monetary values. И весь код такой в bablishko.add(zarplata.multiply(popil,otkat)).
>>1255848 В Android SDK это не нужно, а вот в ndk с этой хуйней можно и поплясать. Не вижу смысла батхертить на unsigned типы в колине, так как это тупо инлайн классы - не хочешь не пользуйся, может кому-то в бизнес логике с ними удобней будет.
>>1255795 Сказочник. Там где тебе не хватает int или long - unsigned int, unsigned long уже ничем не помогут (то есть увеличение объема на 2, не спасут тебя если ты уже на границе трешься, разумеется нужно брать подобие BigInteger).
А словить плавающую ошибку, нефиг делать: xp // 110 debuff // 200 if ( (xp - debuff) > 0 ) { ... } // накинул экспы и какой-то участок кода отыграл противоположно логике то есть покрэшил данные
С котлином что-то не так, нахера он идет по пути низкоуровневых языков, я не понимаю. экономия памяти на unsigned на jvm машине? Или они хотят чтобы у них было все и повторить судьбу С++?
>>1255865 >экономия памяти на unsigned на jvm машине Сидишь такой, думаешь, много думаешь. @ И решаешься вместо long - unsigned int взять, @ Рад за себя, сэкономил, красавчик! @ А jvm машина взяла и выровняла твой объект, чтобы адрес в памяти всегда был кратным машинному слову @ Потом jvm еще накэшировала, подогнала тучу метаданных для хотспота, закэшировала компилируемый код...etc @ А ты сидишь такой, весь из себя оптимизатор-ассенизатор и ненарадуешься.
Решаешься такой вместо unsigned long BigInteger взять. @ А jvm машина взяла и напердолила кучу блоатварекода @ Производительность арифметики упала в овер 10 раз @ Вспомнил что ты жабоблядь и пошел к началству просить новые сервера, потмоу что старые BigInteger не тянут.
И тут такой С# господин про тебя боссу на ухо шепчет и босс такой
- Сосницкий, блядь, а хуле из-за одного сраного бита у нас перформанс в 10 раз лег?
ММММММММ, ПОНИМАЕТЕ, ЖАБОНИНУЖНО, ТОРМОЗА-НИТОРМОЗА, UNSIGNED LONG НАМ НИЧЕГО НЕ ДАСТ ВСЕГО В ДВА РАЗА КОКОККУДААААХ, ДАВАЙТЕ КУПИМ НОВЫЙ СЕРВЕР СТАРЫЙ-КАЛЬКУЛЯТОР
СОСНИЦКИЙ, БЛЯДЬ, А КАКОГО ХУЯ У ШАРПИЦКОГО ЭТИХ ЖАБОПРОБЛЕМ НЕТ И У НЕГО СПОКОЙНО UNSIGNED LONG НА ТЕКУЩЕМ КОНФИГЕ ЛЕТАЕТ?
ММММММММ, ПОНИМАЕТЕ, ЖАБОНИНУЖНО, ШАРПИЦКИЙ ЛОШАРА У НИГО ЯЗЫК-НЕ ЯЗЫК И ПЕРЕПОЛНЯЕТСЯ КОГДА ИЗ 0 1 ВЫЧИТАЕШЬ
ТАК, ВСЁ, СОСНИЦКИЙ, ТЫ УВОЛЕН НАХУЙ, И ЖАБОГОВНО С СОБОЙ ЗАБЕРИ. ДАВАЙ СДАВАЙ СВОЁ ГОВНО ШАРПИЦКОМУ И ЧТОБЫ ДУХУ ТВОЕГО ЗДЕСЬ НЕ БЫЛО
>>1255908 Мы вообще-то про беззнаковые типы, про перегрузку операторов мы в курсе, о чем ты? И зачем сравнение java vs kotlin, по привычке триггернуло?
Там где хватило бы unsigned long и нормально писать операторами нужно по жабоправилам въебать тормознутый BigInteger, получить просадку перформанса в 10 раз на чилокоде и езще и пердолить его лапшой из вложенных методов.
>>1255913 >Производительность арифметики упала в овер 10 раз Берешь смело unsigned long, ведь производительность арифметики для дата-центра, размером с футбольное поле - важнее. @ Отнимаешь от суммы больше чем есть на счету @ Вуаля! Семен теперь первый квинтиллионер! @ Пытаешься в суде объяснить про круговорот нативных чисел в языках программирования и как важная была эта производительность в терафлопсах крутящихся данных в секунду. @ Садишься за мошенничество в особо крупном размере @ Семен частью средств гасит госдолг США и оплачивает всей планете путевку на Багамы.
>>1255935 >Нахуя? Я просто проверю с помощью if() и не буду отнимать. А ты думаешь что блин делает BigInteger и откуда эти просадки получаются?? А если забыл if?
Да и какая разница между 9 или 18 квинтиллионами - скажи? Где тебе так не хватило 9 квинтиллионов, чтобы ты решился отказаться от отрицательных чисел? Серьезно, просто иди делай уроки.
Вопрос. В модуле(library module) есть, например, сервис который делает некую работу и по результату работы должен выплюнуть результат в интент сервис, который находится в главном приложении. Какой самый оптималный вариант, чтоб прокинуть простой бандл? Ведь ресиверы и сервисы объявленные в манифесте не получает неявный интент из библиотечного модуля. А явный интент создать нет возможности, так как в либе нету ссылки на класс Интент-сервиса с основного приложения? мм?
Есть приложение (А), есть модуль (Б). (А) зависит от (Б). В (Б) работает сервис (например FirebaseMessaging). Полсле выполнения работы это сервис должен запустить сервис из приложения (А). Неявным интентом этого сделать нельзя, явный тоже.
>>1245722 (OP) Как на java подключить фронтальную камеру через intenet(intent.putExtra("android.intent.extras.CAMERA_FACING", 1);(не работает) . В androidmainfest все разрешения выдал.
>>1256131 >"android.intent.extras.CAMERA_FACING" Статические типы наше все @ @ Я бы не знал что делать если бы не компилятор. @ Строковые идентификаторы
Как можно оптимизировать ставку большого количства записей в sqlite? Мне нужно кешировать около 5к. данных и обновлять каждый раз частично. Делаю все в фоне, в качестве orm activeandroid, транзакции использую, но устройство не хило так нагружается и начинает заметно лагать UI. Подскажите в какую строну копать и что с тим можно сделать вообще?
>>1256735 У Sqlite есть bulkInsert() для вставки большого количества данных, его и используй. Твоя орм может по одной записи вставляет, оттого и медленно.
>>1245722 (OP) Есть 3 одинаковые вьюхи со сложным layout, различается только значение в TextView. Хочу вынести это все в кастомную вьюху. Как сделать так чтобы кастомный аттрибут подсасывал данные из LiveData? Не хочу 3 раза подписываться на лайвдату в активити.
>>1257025 >различается только значение в TextView. Хочу вынести это все в кастомную вьюху. Ради этого делать свою вьюху, ты умом тронулся. Когда-нибудь это тебе аукнется.
День добрый! В андроиде уже давненько статус CONNECTIVITY_CHANGE считается устаревшим. И вообще вроде как не рекомендуют BroadcastReceiver использовать для получения статуса о изменении состояния интернет подключения. Но как использовать GcmNetworkManager для этих целей (или JobScheduler) нихуя не пойму. В гугле что-то искал, искал и нихуя не понял. Подскажите как реализовать (или на ресурс ссылку, где более менее понятно). Буду благодарен.
>>1257310 >если вместо ответа на вопрос все выебываются Я не выебываюсь. Просто я не знаю этого класса. Логично же, что он лежит в доках блять. Сука, 5 минут потратить жалко что ли? Я уверен что даже я найду его за 5 минут блять. Пидор.
>>1257320 Ну я гуглю но не могу сам найти то что мне надо, решил спросить, может у кого был опыт с подобными вещами, или хотя бы подкажут куда копать, а вы сразу накинулись.
>>1257323 Очень мало кто занимается андройдом, поэтому тут от силы сидят 3 человека. Я вот, например, как волк набрасываюсь, щитпосчу, спорю сам с собой, и серю про котлин. А ты что думал, нелегкая жизнь здесь.
>>1257323 Если совсем по простому - взять контекст и у него вызвать метод для получения папки, есть для временного ранилища, есть для защищенного харнилища, есть для внешнего хранилища с критериями, ну там музыка/картинки.
>>1257327 А если я хочу делать фотки и сохранять их. Сейчас пихаю просто в кеш, чтобы потом одним движением руки можно было очистить, т.к. в продакшене не важно хранить фотки, главное чтобы отослать на сервер и забыть. Я правильно делаю или нужно их пихать в другое место?
>>1257337 Если тебе они в будущем не нужны на клиенте (типа показывать оригинал что бы не качать пожатую копию), то норм. >>1257339 Ну какое-то время они нужны, вдруг с первого раза не отправится?
>>1257287 дружище, ты меня с кем то путаешь(пикрандом). можешь попробовать задать свои вопросы мне, но не факт, что я смогу на них ответить. >>1257294 вроде чуть лучше стало, завтра почекаю
Кто-то пользуется Moshi? Решил я его вместо Gsonа использовать, смотрю - есть няшный генератор для котлина - поставил аннотацию и вот тебе адаптер. Ну думаю збс, смотрю адаптер - все круто. Но как его теперь использовать? Констурктор адаптера принимает в качестве параметра инстанс Moshi (что бы достучаться до других адаптеров), но что бы создать Moshi нужно зарегать адаптеры. Я не понимаю как это использовать.
>>1255380 Я вот написал клиент-серверное: полностью работоспособный клиент под один сайт. Правда на старых технологиях: MVC с Asynctask, голый SQL. Сейчас переписываю на Kotlin c MVP, Reactive, Retrofit, Room/Realm. И второе, тестовое мелкое, с использованием сервисов Firebase уже с Kotlin, MVP, Reactive. Возьмут меня в джуны?
>>1257704 Ты там сидишь рофлишь, или тебе правда хочется знать? Хуй знает, спрашиваешь как не буду говорить кто Как бы то ни было разъясняю ссылками. Документация на почитать-посмотреть - developers.google .com/cloud-messaging/network-manager. На той же странице ссылка на гит - github .com/googlesamples/android-gcmnetworkmanager/tree/master/app/src/main/java/com/google/example/gcmnetworkmanagerquickstart. Что мне от этого надо - просто прогнать запрос до сервера когда появится подключение. Поэтому из сервиса просто все убрал, поставил свой запрос в метод onRunTask(). Дальше в активности/фрагменте при создании(или еще где, смотря что надо) получаем GcmNetworkManager (через getInstance), создаем OneoffTask (все в доках есть) и добавляем задачу в менеджер через mineGcmNetworkManager.schedule(task). Главное отличие - setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) (дай бог здоровья человеку выше, подсказал), чтобы стартовать задачу только при появлении подключения. >>1258291 ИМХО еще после MVP прочитать про MVVM, databinding и чутка тестов, то будет норм. Ну и material design, как уже писали выше, естественно.
Последние две-три недели проверяю вакансии на hh без опыта работы (СПб). Их там от 3-х до 5-ти шт. Это же мало? Или нормально? Трудно вообще найти работу джуну без опыта работы, большая конкуренция?
>>1262198 Ну а кому нужны джуны без опыта работы? От них никакой пользы, но нужно вкладывать ресурсы в их обучение. Такое себе только крупные фирмы позволить могут. Но и отбирают они обычно всяких олимпиадников.
Аноны, прошу вашей помощи.Необходимо сделать авторизацию в приложении по 4х-значному коду, по типу как в банковских приложухах.Я решил сделать так. Вводим логин и пароль, если они правильные, то переходим на окно ввода этого кода и потом этим кодом шифруем с помощью aes строку вида logib_password, после чего сохраняем ее в локалсторейдж вместе с флагом, что приложение авторизовано. Далее когда юзер заново входит, то чекается флаг, что приложение авторизовано и предлагается ввести код. После ввода кода, приложение расшифровывает им строку login_password, которую мы сплитим по нижней палке и пробуем авторизоваться.Подскажите, пожалуйста, все правильно или я даун и надо сделать все иначе.
>>1262154 >Че за говно, не могли как вконтакте зделать Держи в курсе.
>>1262198 > Трудно вообще найти работу джуну без опыта работы, большая конкуренция? Смотря что ты вообще умеешь. Нахуй такие тупые вопросы задавать, еблан?
>>1262204 >Такое себе только крупные фирмы позволить могут Ты скозал?
>>1262301 Да вроде норм смотрится. Но это не точно Я бы еще на код посмотрел, интересно.
>>1262301 Ты же понимаешь, что для брута достаточно 9999 комбинаций? Это на пару секунд работы.
Я бы брал юзерский ключ + пару доп стрингов, которые засунуты в ассеты через https://github.com/StefanoDeVuono/steghide. Ну это само собой при условии, что в приложухе есть что скрывать.
>>1262559 Давно уже пора понять, ты не найдешь людей кто делает реально качественный софт. Половина из них - лишь пишут в твиттер, другая, самая известная, находится в тени и никому не показывается. Потому что им похуй на все.
Привет, анон. Какие есть варианты изменения цветовой схемы всего приложения/элемента в рантайме? Собираюсь отправлять с сервера значения цвета при подключении и в зависимости от типа учётной записи буду подставлять цвета.
>>1262154 Делаешь акич пукич на ангельском. Перечисляешь свои регалии, опыт, полезность на старой работе. Стек технологий не забудь. Хрюши сами стучаться к тебе в лечку и предлагают отсосать.
Анон, есть у меня вопросец по MVP. Есть один RecyclerView, содержащий несколько CardView. И некий контейнер CardViewModel Как православнее использовать паттерн? 1. Для каждого CardView своя связка MVP, то есть M - CardViewModel, V - CardView.
2. Для всего списка целиком, то есть M - List<CardViewModel> V - RecyclerView А презентеру передавать, например, индекс
Перебирал примеры MVP. Чаще всего в роли вьюшки используется весь список целиком, а не его элементы. И для всего списка создается один единственный презентер. Но вот нашел один пример, где каждый элемент списка - вью, и для каждого из них создается свой презентер.
>>1263735 Ну такое, вместо кода для вьюх внутри viewHolder его размазывают на мвп. Я наверное не понял прост глубокой идеи и то какие профиты это дает.
Пацаны, вопрос по датабайндингу, лайвдате и вьюмоделе: у вьюмодели есть перменная-лайвдата, которая, например, отвечает за то, активна ли кнопка или нет, хочу по модному связать эту переменную с разметкой минуя активити\фрагмент, что бы когда меняется значение этой переменной, то кнопка становилась активной\неактивной. Я могу легко сделать это через активити: подписаться в активити на обновления и менять уже перменную в разметке, или создать в разметке переменную такого же типа как и во вьюмодели (например LiveData<Boolean>, гуглоразрабы сделали так, что лайвдата может работать как Observable) и передать туда переменную вьюмодели, но опять таки в этом учавствует активити и это не по понятиям. Я хочу передать в разметку только вьюмодель, а не пердолится с подпиской на каждую переменную во вьюмодели (а их потом будет больше чем одна) и все остальное сделать в разметке. Есть варианта? объяснил как даун.
>>1263882 Будь проклят тот день когда я взял датайбайндинг в проект, чуть что-то не так и все нахуй ломается поди разбери в чем дело. Баттернайф мне тоже не нравитс, но это лично мои загоны против рефлексии.
>>1263735 Если один элемент много чего умеет, то иметь презентер у него - хорошая идея, например, у меня, надо получать обновления для всех элементов отдельно и эта подписка живёт внутри презентера элемента
Есть куча фрагментов, грузящих данные в список. Они отличаются 2-3 методами друг от друга. Я их организовал в трёхуровневое наследование. И вот теперь вопрос, как их разбить на View и Presenter. Оставлять одну вьюху и такую же трёхуровневую иерархию презентеров? Или и вьюхи разбивать? Или создавать кучу ненаследующихся презентеров, и плевать на копипаст кода? Сейчас пытаюсь сделать наследование презентеров и то выливается в вызовы вида: (presenter as ChildPresenter).methodThatExistsOnlyInChild()
>>1264151 Я бы посоветовал сделать класс Presenter<T extends BaseView> с тем самым списком или можешь в модель его запихнуть, сделать три разных вью интерфейса, и присоединять к одному презентеру если фргаменты не находятся на экране одновременно, то по идее у презентера всегда будет только одна вьюха, и мвп не нарушается. Ну и в методах презентера, которые взаимодействуют со View, сделать проверку по instanceof. А еще можно в MVI уебаться, в твоем случае это очень даже круто выглядит.
>>1264151 >Или и вьюхи разбивать? Или создавать кучу ненаследующихся презентеров, и плевать на копипаст кода? Читай шаблоны проектирования и дженерики.
>>1264484 > Есть что-то кроме нативных приложений на Java/Kotlin? - Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если совсем поехавший можешь начинать с него. https://flutter.io/docs/ - документация https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity Остальные: ReactNative — мочаскрипт во всей красе. - PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, первые три попытка в кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде. - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. - BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
Сижу на фрилансе, попросили сделать приложение со смайликами. Банально определение смайлика (грусть,радость (всё работает нормально)), сколько смайликов в тексте и есть ли там кроме смайликов символы (не осилил). Есть ли гайд насчет этой темы?
>Из известногJava на уровне junior, сейчас осваиваю android studio Молодец :З Но джава здесь ради синтаксиса и все. Приходи через месяц другой, поделишься впечатлениями :З
Нужно ли создавать отдельную сущность отвечающуую за координацию всяких обсерваблов-листенеров? Ну вот то есть например репозиторий который умеет доставать пользователей. И есть несколько презентеров которые взаимодействуют с пересекающимися данными этого репозитория - поменяли в одном месте, видно изменения везде. Раньше у меня все это как-то менеджилось в репозитории, но мне кажется это неправильно и репозиторий должен уметь доставать данные, а друга сущность уже разбираться с тем кто на что подписался.
>>1265431 Не оч понял, но у тебя же торчит из репозитория Observable<List<User>>, в чем проблема на него подписаться? Можешь через юзкейз еще обернуть.
Дайте хороший и простой туториал по лоадеру, а то с документации нихуя не понятно, а нагуглить разницу между лоадером и асинктасклоадером даже не могу нормально.
>>1265636 Ну вот допустим я через этот репозиторий что-то меняю, теперь я должен всем этим обсервблам пушнуть обновления, но ведь смылс репозитория не в этом, а в унифиррованном доступе к данным, нарушение принципа единой ответственности.
>>1265873 Что заставит обсерваблы с подписчиками эмитнуть onNext? В StorIO тупо глобальная шина например, в релме обернуты листенеры. А если я например хочу от рума чистое DAO, а не выебоны с лайвдатой или обсерваблами? Тем более даже если мы пользуемся лайвдатой/обсеравблами от библиотеки они обычно нормально не шарятся, то есть на каждую подписку будет сделана выборка вместо одной на всех.
>>1265875 Кароче блять. Если ты хочешь - чтобы несколько презентеров получали обновление, просто блять создай их и все. Через репу провайдишь это блять. Не понимаешь как еще лучше сделать? Читай сука clean. Если ты сделаешь так - то при изменении БД, у тебя источники оповестят и другие презентеры.
Анончик, нужен срочно профессиональный совет. 27 лвл, уволился с руководящей но бесперспективной должности, типичный вкатывальщик.
Мало-мальски освоил Java(кор, колекшенс, канкаренси, паттерны). И вот стал вопрос куда двигаться дальше. Как я понял, нормальных варианта у меня 2: мобайл и энтэрпрайз. Решил экспериментально попробовать и то и другое. По андройду прошел простенький курс из шапки. По энтерпрайзу написал пару хэлловорлдов на спринге с аутентификацией и бд.
Теперь вопросы: Правильно ли я понял, что в андроид вкатиться проще чем в энтерпрайз? Есть ли на андройде фриланс? Субъективно где интереснее работа? Что мне читать\изучать по андройду дальше?
>>1265993 > Теперь вопросы: > Правильно ли я понял, что в андроид вкатиться проще чем в энтерпрайз? > Есть ли на андройде фриланс? > Субъективно где интереснее работа? > Что мне читать\изучать по андройду дальше? 1. На джуна в энтерпрайз проще. 2. Да. 3. Андроид. 4. Архитектуры и принципы проектирования. Clean, SOLID, и метапаттерны типа MVP, MVVM.
>>1266041 Иди нахуй. Занимайся тем, чем нравится. Все блять. И пойми, что ты не вечен и скоро сдохнешь. Но это я думаю ты и так понял, ибо тебе 27 лет.
>>1266211 Большинство людей на планете занимаются не тем, чем нравится. Это означает - что твоя жизнь не удалась и ты выглядишь как кусок говна, который встает, собирается на работу, приходит с работы и все. Это рабство и неполноценность. Если у тебя нет силы воли изменить себя - ты можешь тупо выпилиться. Но к сожалению, если бы каждый так сделал - было бы неудобно. Так что мудаки должны существовать, чтобы помнить об этом, когда разбираешься в андройде.
Хочу написать простое приложение клиент-клиент по прослушке окружения, с чего начать или как проще реализовать такое? фоновый звонок тоже подойдет, язык python
>>1266257 >с чего начать или как проще реализовать такое Если хочешь что-то делать на андройде - идешь по шапке. Приходи через полгодика, если осилишь.
Добрый день, уважаемые. Планирую выступать в качестве заказчика. И у меня накопились ответы которые нужно проверить и дополнить их вашими ответами, советами. Прошу помочь в этом.
Вопрос: Как лучше обеспечить защиту приложения в плане информационной безопасности, если разработкой занимается компания по разработке мобильных приложений? Занимаются ли такие компании проверкой на уязвимости? Если нет, то на каком этапе разработки лучше воспользоваться услугами на проверку на уязвимости в узконаправленной компании и сколько в среднем это будет стоить и нужно ли доплачивать за исправление уязвимостей? Ответ: 1. Занимаются ли такие компании проверкой на уязвимости? - В теории - зависит от серьезности компании. И денег, которые вы готовы вложить в разработку.
2. На каком этапе разработки лучше воспользоваться услугами на проверку на уязвимости - Вопросами безопасности надо озабочиваться с момента решения начать разработку, т.е. с момента составления ТЗ на разработку.
3. услугами на проверку на уязвимости в узконаправленной компании - Всегда полезно сделать дополнительную проверку у независимого аудитора.
4. сколько в среднем это будет стоить - Серьезная проверка серьезного приложения - много. Как можно ответить "в среднем" даже не понимая, что вы там надумали разрабатывать.
5. нужно ли доплачивать за исправление уязвимостей? - Как договоритесь с разработчиком.
Вопрос: Что нужно учитывать при работе с компаниями по разработке мобильных приложений если я буду выступать в роле заказчика? Ответ: первое - вы должны точно понимать что вы хотите, не на техническом уровне, но должны понимать ту задачу которую решает приложение, если это бизнес задача то понимание бизне процесса или человек кторый его понимает должен быть.в любом случае полезно иметь хотя бы общее представление о процессе разработки и публикации, или хотя бы человека который с этим подскажет - знаю историю когда человеку по договору вписали публикацию в google play за 3000 евро (просто публикация, не подготовка текстов или рекламны материалов, просто загрузка файла - 3 минуты работы )спросите портфолио - нарисовать чужое не проблема, но если что то похоже на ваш проект в общении станет понятно их работа или не и вообще стоит ли иметь с ними дело.
Вопрос: Что обычно включено в разработку дизайна мобильного приложения в компании по разработке мобильных приложений? Нужно ли заказывать разработку иконки отдельно? Ответ: Как заказчик, запомните одно простое правило."Что обсуждалось вне подписанного ТЗ - лишь ваши фантазии".Иначе говоря, если в ТЗ это есть, то вы можете спросить это с исполнителя. Если в ТЗ это не описано достаточно подробно, то исполнитель может трактовать это в свою пользу. По поводу иконки, если исполнитель просит денег за это, и вы это не обговорили, то вы можете либо договориться, либо заплатить. Т.е. если вы уже заплатили за дизайн более 100К, то иконку вы можете попросить в качестве подарка за сотрудничество.
Вопрос: Возможно ли в рамках мобильного приложения пригласить человека в приложение так что бы он скачал приложение с плей маркета и оказался в списке друзей? Ответ: Просто по ссылке нельзя. Можно сделать через промокоды. На каждого пользователя генерируется код (например, шестизначный), который предназначен для ввода другим юзером в приложении. Соответственно, в приложении желательно сделать функцию отправки промокода через соц сети или по смс.
Анон обосри "гениальный план", что если вместо вьюхи в MVP использовать ViewModel и хранить в ней стейт вьюхи? В презентере никакого стейта - хранить при переворотах не нужно, а ViewModel сохраняет все из коробки. Какие подводные?
>>1266564 >Анон обосри "гениальный план", что если вместо вьюхи в MVP использовать ViewModel и хранить в ней стейт вьюхи? В презентере никакого стейта - хранить при переворотах не нужно, а ViewModel сохраняет все из коробки. Держать ссылки на множество вьюх в презентере или что? Пиши понятней блять. А так, если что-то выдумывать - то в большинстве случаев соснешь. Перед тобой великие умы делали множество вещей.
>>1266625 1)В активити инжектится презентер 2)К активити в onCreate привязывается HuiPizdaViewModel 3)В том же методе в презентер передается ссылка на HuiPizdaViewModel В последствии активити вызывает методы презентера, он делает запросы и все такое, а результаты передает в сохраненую HuiPizdaViewModel, на которую уже подписана активити, при закрытии\повороте активити ссыка на HuiPizdaViewModel в презентере нулится.
>>1266765 Даун, он передает хуй-пизду результаты, а там команды.
Единственное, что не понятно, так это >>1266633 > при закрытии\повороте активити ссыка на HuiPizdaViewModel в презентере нулится. Хуй знает как в мокси, но там может быть так же. или не так же. Я не смотрел как внутри view state работает.
Привет,помогите пожалуйста. Есть 2 Spinner-a. И допустим пункты (item) 1,2,3,4,5... Как сделать, если выбираю значение в 1-ом ,то нельзя было бы выбрать такое же во 2-ом.(не показывалось) Например,2 и 6 ,но НЕ 2 и 2.
Аноны, есть небольшой класс Pojo1 с полями следующих типов: Boolean, String, List<Pojo2>, List<Pojo3>. В приложении уже используются Room и SharedPreferences. Как (де)сериализовывать Pojo1 с минимумом ебли? Room/SharedPreferences, или просто Serializable пометить и не ебаться?
>>1267267 >>1267078 В мире Android разработки до сих пор только Java 7 с некоторым сахаром из 8. Поэтому те, кто хотят писать на современном языке, просто пишут на Котлине.
Как сделать директорию в internal storage, которую пользователь может видеть и что-то запихнуть? getFilesDir() выдает приватную папку, с которой такое не прокатит. Но я вижу кучу папок приложений у себя на смарте в памяти телефона. ЧЯДНТ?
>>1267333 > Но я вижу кучу папок приложений у себя на смарте в памяти телефона Раковая опухоль ведра, каждое уебище норовит высрать свою очень важную папочку в рутовую директорию. getExternalStoragePublicDirectory вроде бы
Чето я не соображу, короче, пилю дейтинг. Сервер принимает и отдает жсоны, но как авторизовать клиент? Пока на ум пришло только выдавать ему токен сервером при регистрации, сохранять в памяти устройства и требовать его при запросах к апи, правильно делаю? Но ведь если токен скомпрометируется это же пездец, но по идее при пост запросе на httpS его будет невозможно отследить?
>>1268200 > Сервер принимает и отдает жсоны, но как авторизовать клиент? Пока на ум пришло только выдавать ему токен сервером при регистрации, сохранять в памяти устройства и требовать его при запросах к апи, правильно делаю? Но ведь если токен скомпрометируется это же пездец, но по идее при пост запросе на httpS его будет невозможно отследить? Некоторые сайты выдают токен на определенный промежуток времени, например микрософт на часик выдает или что-то вроде того. Если пет проект - то хуярь токен. Если нет - то сбрасывай по истечению времени. А лучше просто тупо логин пароль и все ебать.
Куда положить апк и кидать на него ссылку из своего приложения, скачанного из маркета так, чтобы пользователь не засцал качать и видеть количество установок? Не спрашивайте, зачем это (из-за авторских).
>>1269481 > Куда положить апк и кидать на него ссылку из своего приложения, скачанного из маркета Правила макета это прямо запрещают. Так что клади хоть куда, всё равно забанят.
У меня тут вопрос, немного не по андроиду. Есть приложение, оно при определенных действиях юзера, оно парсит сайт. Так вот, будет ли засчитываться каждый парсинг как посещение сайта?
>>1269508 Вряд ли, просмотры же не тупо скачиванием страницы считаются, так что если js не юзался, куки не изговнякивались метриками - то просмотры считать не будут.
Объясните мне, пожалуйста, популярным языком, в чем толк от юнит тестов? Имею в виду, когда уже пишу тест для какого-либо метода не понимаю, зачем я это пишу. Сравнивать 4 и 2 + 2 можно и без тестов понять. Вызывается у тебя метод или нет, смотришь с помощью дебага. Использовать классы заглушки из мохито тоже какой-то бред. Юзаю мохито, whenever...thenReturn...итак из метода в метод. Да и еще, как понять, написан ли тест неправильно или таки мы отловили ошибку в тестируемом участке кода?
>>1269562 Для регрессии нужны. После каждого изменения вручную проверять, работает ли 2+2 = 4 заебешься. А если после какого-то изменения у тебя тест сломался, ты баг сразу видишь.
>>1269562 > Юзаю мохито, whenever...thenReturn...итак из метода в метод Есть мнение, что мохито кусок говна, так как ты тестируешь не поведение, а реализацию. Меня реализацию, не меняя поведение, твоим мохито тестам пизда.
Подскажите как реализовать защищенный от реверс инженерии public key pinning. Так чтоб нельзя было декомпильнуть, пройтись поиском по сорцам и найти захардкоженые публичные ключи и заменить своими. Пока что нашел лишь вариант с хранением ключей в нативных *.so либах. Но это слишком геморно, для приложения с разными флеворами и эндпоинтами (билд процесс усложняется в разы).
>>1270094 Ну ты хоть до конца дочитуй >Так чтоб нельзя было декомпильнуть, пройтись поиском по сорцам и найти захардкоженые публичные ключи и заменить своими
На самом деле тебе достаточно твои ключи собирать из xor byte array в джаве, это уже отрежет половину школунов. Выносить в сошку нет большого смысла, эту сошку можно легко вынести в свой хэллоуворлд и потыкать ее из него, native методы не прогвардятся.
>>1270125 Спасибо, крутая статья. Хоть я ничего нового и не узнал (до этого думал в base64 хранить), но приятно (нет) знать, что нормальных вариантов нет.
Насколько разумно пилить UI нативного приложения для ведра на React Native или Flutter? И если хоть немного смысла это имеет, то что всё же лучше учить начинающему разработчику?
E/JobSchedulerService: jobid:20536 java.lang.IllegalStateException: Same jobid in systemuid.
Что за еррор? Нагуглить не могу. Юзаю джобскедулер, падает на первом запуске, со второго запуска пишет что нету пермишена, если я при первом его не дал. Джоба лезет в память
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
> Хочу вкатиться в разработку под Android! С чего начать?
С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Для тех, кто не хочет учиться по юдасити существует скучный кат от гугла: http://developer.android.com/training/index.html
Так же есть книга, которая затрагивает основы разработки и имеет 2-е издание с 2017 года: https://www.amazon.com/Head-First-Android-Development-Brain-Friendly/dp/1491974052
Большинство приложений написано на Java, необходимо понимать что ты пишешь, в уме достаточно знать базовый Core т.к. 90% времени придется тыкаться в Android SDK. Полезные обучалки от анона:
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
Неплохим вариантом для изучивших джава будет книга https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997
Алсо можешь читануть паттерны, рано или поздно все равно базовое знание понадобиться https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
Существует два текстовых ресурса для закрепления андройда на русском. Первый - несмотря на старость описывает базовые вещи, на которых построены мощные либы, второй - продавшийся говноед с котиками 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 - ресурсы к лекциям
Или от Яндекса. В некоторых моментах спикеры рассказывают важные детали, которые кроются в мелочах:
https://www.youtube.com/watch?v=5EvxWifIgro&list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что?
После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite.
Дальше закрепляешь знания путем просмотра видосов выше +
Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее.
>Хочу изучать популярные либы и не быть говноедом!
Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом.
Retrofit - стандарт для взаимодействия с сетью. Вместе с ней можешь изучать либу okhttp3. Так же для справки можешь гуглить volley.
RxJava - тяжеловесная либа. Одно из решений для выполнения кода в бекраунде.
[YouTube] KotlinConf 2017 - RX Java with Kotlin in Baby Steps by Annyce Davis[РАСКРЫТЬ] - rxJava с нуля
[YouTube] RxJava доставляет Артём Зиннатуллин[РАСКРЫТЬ] - на русском
[YouTube] Managing State with RxJava by Jake Wharton[РАСКРЫТЬ] - rxJava
[YouTube] Making Retrofit Work For You by Jake Wharton[РАСКРЫТЬ] - retrofit
Неплохо было бы и изучить MVP. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.
MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
https://github.com/sockeqwe/mosby - англоязычная плюшка
MVVM - костыли от гугла:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - свежие уроки от Димона
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых
Пример MVVM
https://github.com/ericmaxwell2003/MvvmTipCalculator
Это всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения можно попробовать почитать
this: https://habr.com/company/mobileup/blog/335382/
Пример на котлине:
https://github.com/hitherejoe/GithubTrending
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально.
[YouTube] Лекция 1. Kotlin 101[РАСКРЫТЬ] - свежие лекции на русском
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 с аля строгой типизацией. Если совсем поехавший можешь начинать с него.
https://flutter.io/docs/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные:
ReactNative — мочаскрипт во всей красе.
- PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, первые три попытка в кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии, shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа 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 - бенчмарки на вопросы о том, какую БД выбирать.