Это копия, сохраненная 11 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
> Хочу вкатиться в разработку под Android! С чего начать?
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.
Предыдущий тред: https://2ch.hk/pr/res/1079097.html (М)
Зарепортил за всратку с оппика.
Тут ты вряд ли что-то кроме 300к / сек услышишь.
На хабрахабре полно таких историй, вот свежая https://habrahabr.ru/post/345174/
гугль везде удалил, пидрилы, у меня 3.0 не запускается
чтобы не переустанавливать шиндовз.
я могу на любое железо поставить любое ведро?
или там все анально огорожено?
Каждый производитель устройства пишет собственную прошику. Насколько знаю, Google запустила программу не помню как нзывается точно, что-то вроде Android One, чтобы избавиться от такого положения дел.
Гугли HAL
нет, я допустим смогу поставить на старый девайс какой-нибудь новый андроид?
какой там сейчас модный? 5ый?
Уберите уже эту мразь с оппика
>Кого вообще ебет, что там за картинка?
Меня до этих тредов никогда не ебало, но эта пикча за гранью.
У тебя с ним уже есть DAO, зачем тебе репозитории?
умей гуглить, аутист, тебе уже ответили что с помощью интентов можно открыть другие приложения.
Или за тебя проект написать?
Тут выше человек не мог найти старую версию студии. Решил проверить самостоятельно, ссылка на скачивание выпала первой. Вывод делайте сами.
Что за комп сейчас?
Никаких
Запускай грейдл из консольки, эдить в код sublime/vscode
Вы в каждом треде теперь это спрашивать будете?
С тулзами попробуй поигратся, но не уверен что поможет
Увы, никаких изменений. Ладно, хрен с ним, главное что в приложухе все как надо.
Нет, не указывал. Теперь работает правильно, спасибо.
Раз пошла такая темочка, то как мне правильно кнопочки "большого пальца вверх" сделать? Ну что б при нажатии на них была анимация, как со стандартным Button. Пока сейчас просто ImageView для предварительного просмотра.
Гугли ripple effect
Говноприлоджуха которая в риалтайме цепляет маски к еблам. Тебе риалтайм или нет? Если нет, то все просто.
просто как писать приложения я в душе не ибу, и поэтому хочу понять масштаб проблемы
Берешь и пишешь. Без задней мысли.
Ну такое, не очень быстро сделаешь, может быть с вебсокетами, но даже так возможно задеркжа будет неприемлемой.
я на хьмл5 делал с вебсокетами, мне чисто продемонстрировать это нужно клиенту
похуй на задержки если они не прям пиздец большие
> заиметь йоба кудахтер чтоб запустить свое код > учить богом забытую джаву
> учить странныйнелогичный андроид
> учиться делать умирающие приложения от которых большая часть мира уже отказалась
> две с половиной вакансии за месяц уровня
Я просто не верю что мыслящий человек по собственной воле засунет свою голову в петлю андроида.
В чем разница? Я знаю, что OAuth 2.0 client ID нужен для авторизованных реквестов, а APi key для неавторизованных вызовов. Но как выглядит эта разница на практике?
Я правильно понимаю, что если используется приватная папочка приложения на гуглодиске - достаточно лишь API key, а если нужен доступ к порнушке пользователя в ЕГО папках - тут уже нужна авторизация?
И если да - значит ли это, что на ведре нельзя безопасно использовать API key без стороны сервера, учитывая это
https://support.google.com/cloud/answer/6310037?hl=en&ref_topic=6262490
>Я просто не верю что мыслящий человек по собственной воле засунет свою голову в петлю андроида.
Я на этим хлеб буду зарабатывать. А что ты мне прикажешь, яблоко осваивать? Я лучше на андройд сяду и плевать, что я буду ебаться со всем. Я хочу нормально жить в этом мире, а не сидеть в сисадминах.
Выучит другой яп.
Соснешь ты, а я ебану через hni(html native interface)
нихуя, ничто из этого не дает доступ непосредственно к камере. максимум можно ролики записать и загрузить
Внутри вьюхолдера.
layout-sw600dp-land
Как правильно делают в таких ситуациях?
>>12395
Ну я передают свой интерфейс в onCreateViewHolder, и в конструкторе ViewHolderа ставлю clickListener как мне надо, а фрагмент с рейсайклером имплементит мой интерфейс нажатий. Может есть и лучшие решения, тоже бы послушал.
Это что же у всех так 6 гигов памяти отжирает или у тебя там отброный говнокод?
Это еще мало. Видать просто hello world собрал
>>11314
>>11316
да ладно вам, что не так? Нормальная девушка-блондинка в модных ныне очках, че вы разошлись, смермотокзикозники? Почему вас реально это настолько ебет в тредах про програмач?
П.С. двачую, что на месте ОПа я бы принципиально эту картинку только бы и ставил и наслаждался б багетами даунов
У меня 4 гига отжирает хелоу ворлд.
Я вот уже и не помню своего момента.
Cем, плиз
посмотри может там есть аттрибут tools:orientation
Нужно ли понимание как функционирует сервер, бекенд, навыки работы в командной строке Linux??
Можно ли писать под IOS без мака(компьютера от эппл)?
Где-то читал, что написав код на c++, можно его скомпилить кроссплатформенно для IOS и для Android, это правда?
Жирный троль.
Анон, как в андроиде внутри организовано общение с сетевым стеком? Мне, юникс сишкоблядине, не совсем ясно, как оно работает: в обычном линуксе работа идет через сокеты и их системные вызовы, в андроиде же это судя по всему организовано через какой-то хитрожопый IPC/RPC (т.е. пользовательское приложение общается с внутренним процессом вместо прямых системных вызовов), но я все-равно не могу понять, какой процесс отвечает за собственно общение с ядром.
Тебе надо ковырять исходники. Но вообще дергаются дажвовские сокеты, которые уже на каждой платформе по своему работают.
Хм, а ты прав, софт действительно использует обычные жабовские сокеты, никакого ебнутого IPC нет. Я пробовал с помощью cgroups+iptables зарезать трафик для определенного приложения, но он нифига не резался, из-за чего я решил, что трафик идет через что-то другое. В итоге оказалось, что при запуске процесс (в моем случае - Webview browser) всего лишь хуярит какие-то свои сложные правила и таблицы роутинга для процесса, которые перекрывали мои.
Есть 2 активити: на первой есть список элементов, по нажатию на который открывается activityForResult второй активити для просмотра/редактирования информации. Также, во второй активити есть ViewPager для свайпа фрагментов, в которых собсна вьюхи с полями элемента списка. Вот мне в адаптер ViewPage'а нужно скормить список, который содержится в фрагменте со списокм в главной активити. Как это лучше сделать? Обернуть список в класс, унаследовать его от Serializable и в intent пихать? Класть для ArrayList в синглтон? Или есть способ, о котором я не знаю?
А, нет, я обосрался, роутинг тут ни при чем и оно все-равно не работает. Ну да хуй с ним, буду копаться в исходниках дальше
Указать чужие. Делаешь новый эмейл, потом делаешь под фальшивые имена карту, найди бомжа какого-то.
Самый простой вариант - сделать Parcelable. Но лучше что бы был какой-нибудь репозиторий с этой ебалой, и его инстанс инжектился в обе активити/фрагмента.
Если очень много данных делай синглтон(в intent по моему в последний версиях не больше мегабайта можно пихать), в остальном на мой взгляд лучше юзать интенты с parceable.
Дроны гугла к тебе прилетят и посадят на бутылку.
На швабре была статья чувака котоырй клепал однотипные клоны говноигр по всяким франшизам-мультикам и греб бабосы с рекламы. Менял эмейлы/карточки и даже железо, еще айпи прятал за проксями, так как гугл выкпуал и банил аккаунты. Но вроде ничего страшного в реальном мире не было.
Чисто теоретически в чем проблема помочь бомжу зарегать карточу, эмейл и аккаунт разработчика? Ничего страшного, только за пиздинг контента могли бы доебаться, но интернет еще вроде не под бацькой.
repositories {
maven{url 'https://maven.google.com'}
}
добавил - нихуя не поменялось. Можно оно просто заработает и все?
Скочай 3.1
Вы когда-нибудь работали с андроидом? Писали под него приложения/игры? Видели его API или код?
Это worst OS ever. Впечатление что код писали первокурсники набранные по ЛГБТ-квотам. Заметьте, я говорю «писали код», а не «проектировали», потому что проектированием там не пахнет. Любой человек с опытом написания больших проектов, напишет лучше, рили.
Api экстремально говняное. Более того, оно часто меняется. В итоге мы имеем по несколько говняных апи в разных версиях. Т.е. можно написать фичу, а через версию андроида узнать, что она отламалось, и нужно юзать другое апи с другими костылями. Без костылей вообще ничего не попишешь.
Глобальные косяки в проектировании, тащатся с первых версий и не исправляются в принципе. Конечно, лучше новую кривую апишку добавить. Эти ребята даже язык не смогли выбрать для проекта, пока андроид написан на джаве, он так и будет тормозить. И не надо мне говорить «джава не тормозит» или «новые андроиды не тормозят», на практике это не так. Когда на 8 ядрах и нескольких гигах RAM звонилка открывается 0.5 сек, это не «не тормозит», а беспредел, на таком железе иначе как мгновенно быть не должно.
Идем дальше, вещи типа GooglePlayServices написаны запредельно говняно. То что в ios делается в 2 строки, тут делается в файл полный костылей и асинхроннного глючного говна.
NDK это просто высер и одновременно плевок в лицо разработчикам под платформу. Из всего апи корректно работает 20%, остальное в той или иной мере не работает или просто недоделано. Есть баги которые не фиксятся с первых версий. Не буду говорить о том, что значительная часть рабочих фичей по части поддержки C++ сделана вообше сторонним разработчиком(спасибо ему за это). И опять же не надо говорить что они думали что «все приложения\игры будут написана на джаве и нативный код ненужон». Сам факт того что они так мыслят, говорит об отсутствии квалификации.
Далее, тулсет. Android Studio — глючное, тормозное ужасное говно. Gradle — вообще ночной кошмар. Такой же тормозной как и студия. За время за которое ant собирал проект, gradle даже запуститься не успевает(Знаете как они пытаются это пофиксить? Запускают демон чтобы не запускатать каждый gradle раз. Overmind). Ужасный, нелогичный, инопланентый синтаксис. Оказывается раньше это был более-менее нормальный язык groovy(Если конечно считать нормальным делать тормозной скриптовый язык на и без того тормозной джаве), но потом туда добавили сахарку и писать на нем даже с документацией проблематично. Haskell понятнее.
Мусор, в каждый проект gradle добавляет кучу мусорных файлов, просто уйму. Про частые обновления которые ломают сборку я промолчу. В свое время я не знал про offline режим, и как-то открыв проект через месяц обнаружил его несобирающимся, хотя ничего не менял. Это беспредел.
Так к чему я это все. Из всего вышесказанного, можно сделать вывод что общий уровень квалификации работников гугла экстремально низкий. Так же основной упор на собеседованиях идет на малоприменимые на практике математические задачи, что ведет к отрицательному отборку, в итоге в гугл попадают студенты-первокурсники, задрочившие сборник олимпиадных задач, имеющие большое самомонение(как же, в гугле же работают), но с отсутствующей квалификацией. Так же в компании сущетсвуют ЛГБТ-квоты, когда нанимают сотрудников не потому что они хорошие специалисты, а потому что они путают мальчиков с девочками.
Вы когда-нибудь работали с андроидом? Писали под него приложения/игры? Видели его API или код?
Это worst OS ever. Впечатление что код писали первокурсники набранные по ЛГБТ-квотам. Заметьте, я говорю «писали код», а не «проектировали», потому что проектированием там не пахнет. Любой человек с опытом написания больших проектов, напишет лучше, рили.
Api экстремально говняное. Более того, оно часто меняется. В итоге мы имеем по несколько говняных апи в разных версиях. Т.е. можно написать фичу, а через версию андроида узнать, что она отламалось, и нужно юзать другое апи с другими костылями. Без костылей вообще ничего не попишешь.
Глобальные косяки в проектировании, тащатся с первых версий и не исправляются в принципе. Конечно, лучше новую кривую апишку добавить. Эти ребята даже язык не смогли выбрать для проекта, пока андроид написан на джаве, он так и будет тормозить. И не надо мне говорить «джава не тормозит» или «новые андроиды не тормозят», на практике это не так. Когда на 8 ядрах и нескольких гигах RAM звонилка открывается 0.5 сек, это не «не тормозит», а беспредел, на таком железе иначе как мгновенно быть не должно.
Идем дальше, вещи типа GooglePlayServices написаны запредельно говняно. То что в ios делается в 2 строки, тут делается в файл полный костылей и асинхроннного глючного говна.
NDK это просто высер и одновременно плевок в лицо разработчикам под платформу. Из всего апи корректно работает 20%, остальное в той или иной мере не работает или просто недоделано. Есть баги которые не фиксятся с первых версий. Не буду говорить о том, что значительная часть рабочих фичей по части поддержки C++ сделана вообше сторонним разработчиком(спасибо ему за это). И опять же не надо говорить что они думали что «все приложения\игры будут написана на джаве и нативный код ненужон». Сам факт того что они так мыслят, говорит об отсутствии квалификации.
Далее, тулсет. Android Studio — глючное, тормозное ужасное говно. Gradle — вообще ночной кошмар. Такой же тормозной как и студия. За время за которое ant собирал проект, gradle даже запуститься не успевает(Знаете как они пытаются это пофиксить? Запускают демон чтобы не запускатать каждый gradle раз. Overmind). Ужасный, нелогичный, инопланентый синтаксис. Оказывается раньше это был более-менее нормальный язык groovy(Если конечно считать нормальным делать тормозной скриптовый язык на и без того тормозной джаве), но потом туда добавили сахарку и писать на нем даже с документацией проблематично. Haskell понятнее.
Мусор, в каждый проект gradle добавляет кучу мусорных файлов, просто уйму. Про частые обновления которые ломают сборку я промолчу. В свое время я не знал про offline режим, и как-то открыв проект через месяц обнаружил его несобирающимся, хотя ничего не менял. Это беспредел.
Так к чему я это все. Из всего вышесказанного, можно сделать вывод что общий уровень квалификации работников гугла экстремально низкий. Так же основной упор на собеседованиях идет на малоприменимые на практике математические задачи, что ведет к отрицательному отборку, в итоге в гугл попадают студенты-первокурсники, задрочившие сборник олимпиадных задач, имеющие большое самомонение(как же, в гугле же работают), но с отсутствующей квалификацией. Так же в компании сущетсвуют ЛГБТ-квоты, когда нанимают сотрудников не потому что они хорошие специалисты, а потому что они путают мальчиков с девочками.
Хорошо пишешь, но вывод идиотский. Уровень квалификации довольно высокий, но сама суть андроида - добавлять новые фичи asap, а не когда они окаменеют как говно мамонта, а также поддерживать как можно большее количество говнопроизводителей, которые вносят критическое количество говнокода и неразберихи. В то же время в iOS - диаметрально противоположный подход, прямо как альфа и омега, лол. Что лучше - вопрос философвский
Мне плевать, я готов ебаться с кодом, потому что я нищий и не могу на мак перейти. Да и не нужен этот мак, андройд же ОПЕН_СОУРС.
> Впечатление что код писали первокурсники набранные по ЛГБТ-квотам. Заметьте, я говорю «писали код», а не «проектировали», потому что проектированием там не пахнет.
Начнем с того, что изначально ОС была разработана не Гуглом, а Android Inc, которая к Гуглу никакого отношения и не имела. Большинство ошибок проектировки (которые, кстати, и Гугл признает) — на её совести.
> Глобальные косяки в проектировании, тащатся с первых версий и не исправляются в принципе.
А как ты предлагаешь их исправлять? Вот пересоздание activity при повороте, например. Гуглу нужно изменить это поведение, перелопатить сотни тысяч строк кода и сломать 90% пользовательских приложений?
> ребята даже язык не смогли выбрать для проекта
Выбор Джавы в качестве основного языка разработки был важен для привлечения большого числа разработчиков, которые могли сразу брать и писать код. Если бы API было на Плюсах, стоимость и сложность разработки приложения выросли бы многократно.
> Android Studio — глючное, тормозное ужасное говно
Ты, видимо, XCode или Xamarin Studio никогда не использовал. IDE от JetBrains считаются стандартом в коммерческой разработке ПО.
> Gradle — вообще ночной кошмар.
> За время за которое ant собирал проект, gradle даже запуститься не успевает
Потому, что ant умеет чуть менее, чем нихуя. Еще можно снова сравнить с iOS-разработкой, где до сих пор нет нормальной системы сборки и нормального менеджера пакетов.
> общий уровень квалификации работников гугла экстремально низкий
> упор на собеседованиях идет на малоприменимые на практике математические задачи
Гугл работает с оргомными массивами данных, где применение асимптотически неоптимального алгоритма выльется в огромные издержки.
Ты чё, ты чё, а?
эм, ты же понимаешь, что тут:
>пишите single activity app
>не юзайте fragments back stack
противоречие и деление на ноль?
Либо ты пишешь приложение с ОДНОЙ активити и там у тебя будет уже много фрагментов в стеке. Либо у тебя вообще нет головной боли с фрагментами, ты используешь архитектуру с множеством активити.
А сингл активити без фрагментов ты не сделаешь даже в тестовом задании для перехода в адекватную контору.
Ну я пишу с сингл активити. Что именно тебе не понятно?
Вообще вроде как при таком подходе есть какие-то проблемы с nested fragments в view pagerах, но я в них использую обычные вюхи.
Но бэкстек у фрагментов конечно юзаю, как тот петушок обосновывал свой вскукарек? Вручную перехватывать кнопку назад и писать свой аналог бэкстека? Говно какое-то, пидоры блять.
Желательно с минимумом велосипедостроения и крашей.
да
SQLITE конечно же.
Realm - лишняя зависимость и в руках новичка неповоротливый и не оптимальный инструмент.
Понял. Спасибо.
не пытаться вкатываться
Ты хоть прочитал что там написано?
Включи виртуализацию в биосе(если она есть у твоего проца) и установи специальнюу мокропиську для винды - haxm. Или используй медленный arm эмулятор КАК ТЕБЕ ПОДСКАЗЫВАЮТ В ЕБАНОМ СООБЩЕНИЕ, БЛЯ
Берешь и заполняешь текстом, в чем проблема? Только надо где-то хранить дополнительно выбранный вариант как он есть.
Вартан, лол. Я думал это какой-нибудь новый модный русский андроидопетушок с подворотами. Один хуй, твой качок такой себе авторитет, это как раз школьники любят выбрать себе ОВТАРИТЕТА и смотреть ему в рот без оглядки на здравый смысл. Из "его" либ юзаю только ретрофит. В остальных либах он один из мелких контрибьютеров. ButterKnife параша
>Вартан, лол. Я думал это какой-нибудь новый модный русский андроидопетушок с подворотами. Один хуй, твой качок такой себе авторитет, это как раз школьники любят выбрать себе ОВТАРИТЕТА и смотреть ему в рот без оглядки на здравый смысл. Из "его" либ юзаю только ретрофит. В остальных либах он один из мелких контрибьютеров.
Любишь ебаться без реактива, когда весь мир признал его и уже вторая версия стабилизируется? Ебись дальше, обоссышь со своими асинтасками и паттернами хуернами.
>ButterKnife параша
Пидорас.
Не ответ
Это тоже самое, как выбирать базуданных. Поставь блять уже и все.
Стоит!
>он пишет адаптеры под ретрофит, рхбиндинги и прочую ебалу
Ну давай расскажи как правильно, мне вот интересно.
мимо.
Присоединяюсь к вопросу: какой сейчас самый лучший вариант работать с диалогами внутри фрагментов или активити, при этом корректно отрабатывая переворот экрана, не теряя target fragment и не теряя активити/колбеки?
> Он закроется при перевороте
Нет, не закроется. Из-за того, что он DialogFragment, FragmentManager сам тебе его восстановит после переворота. Или ты неправильно его используешь
> Надо как-то не потерять колбек
В смысле не потерять? Пользователь жмакает на кнопку, передаешь событие дальше своему презентеру или что там у тебя.
Что если мне надо передать клик в родительский фрагмент? Как это лучше сделать?
В презентер только если через синглтон передавать, который реализует презентер.
Ну или в самом диалогфрагменте обрабатывай клик. Я хз, что там за юзкейс у тебя.
Вообще, не вижу тут ничего макаронного. Тот же листенер, по сути, только вид с боку. Получил бродкаст в своем родительском фрагменте, обработал или передал в преентер, всё.
Пиши single activity app, и не юзай fragments back stack
ох сынок, тебе только предстоит узнать все прелести андроид дева
> Есть способ решить это с помощью лайфсайкла?
Если ты не используешь fragments back stack (на что похоже) то нет.
Использую, иначе бы оно грузило инфу и показывало текствью всегда, независимо от переходов. А сейчас состояние прокрутки листвью восстанавливается норм, а текствью исчезает, поскольку изначально, пока инфа не пришла, оно скрыто.
Если я правильно понял. Корень твоей проблемы в том что у тебя вью хранит бизнес-инфу (информацию об удачности запроса), тогда как вью должно хранить только свою собственную внутренную инфу, а все что касается бизнес логики запрашивать у хозяина. Конкретно проблема в том что даже у существующих фрагментов вью может постоянно создаваться-уничтожатся (для экономии памяти), и в твоем случае при пересоздании вью просирается состояние текствью - так как вью не предназначено для хранения инфы, оно просто выкидывается нахуй. Тебе нужно добавить проперти в фрагмент с состоянием запроса - в процессе/успешно/неуспешно и при создании вью (а также при изменении проперти) приводить вью к внешнему виду.
Если я правильно понял, то сейчас у меня именно так и реализовано.
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.list_with_head, container, false);
if (!isCreated) {
if (wasEmpty) {
//фрагмент показывался, данные грузились и произошла ошибка
rootView.findViewById(R.id.empty_list).setVisibility(View.VISIBLE);
((TextView) rootView.findViewById(R.id.empty_list_text)).setText(empty_list_text);
}
else {
//фрагмент показывался и данные успешно загрузились
rootView.findViewById(R.id.list_head).setVisibility(View.VISIBLE);
((TextView) rootView.findViewById(R.id.list_head)).setText(list_head_text);
}
}
//создаётся дальше
}
public void onStart() {
super.onStart();
if (isCreated)
loadItems();
}
Переменные isCreated и wasEmpty изменяю в onPostExecute асинктаска. Подумал, может это костыльно и есть какой-то способ сохранить вьюху или перекинуть код в другие события жизненного цикла, при переходах по бэкстеку.
Если я правильно понял, то сейчас у меня именно так и реализовано.
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.list_with_head, container, false);
if (!isCreated) {
if (wasEmpty) {
//фрагмент показывался, данные грузились и произошла ошибка
rootView.findViewById(R.id.empty_list).setVisibility(View.VISIBLE);
((TextView) rootView.findViewById(R.id.empty_list_text)).setText(empty_list_text);
}
else {
//фрагмент показывался и данные успешно загрузились
rootView.findViewById(R.id.list_head).setVisibility(View.VISIBLE);
((TextView) rootView.findViewById(R.id.list_head)).setText(list_head_text);
}
}
//создаётся дальше
}
public void onStart() {
super.onStart();
if (isCreated)
loadItems();
}
Переменные isCreated и wasEmpty изменяю в onPostExecute асинктаска. Подумал, может это костыльно и есть какой-то способ сохранить вьюху или перекинуть код в другие события жизненного цикла, при переходах по бэкстеку.
> Переменные isCreated и wasEmpty изменяю в onPostExecute асинктаска.
Ты вкатывальщик или путешественник во времени?
Жаль. А тот купили бы биткоинов по 20 долларов.
Данные необходимо выгрести все оттуда, обработать и отобразить или передать в файле на сервер.
Естественно выборка работает ОЧЕНЬ медленно (16 секунд на выборку), а вставка через некоторое время, когда база заполнится начинает тормозить.
Какое здесь может быть оптимальное решение по ускорению?
Известно, что в проекте есть только 2 запроса, связанных с этой таблицей: вставка одной записи и выборка всех сразу.
Ну и зачем тебе тогда база да вообще? Сериализуй в json, его же сразу отправляй на сервер.
> Естественно выборка работает ОЧЕНЬ медленно (16 секунд на выборку), а вставка через некоторое время, когда база заполнится начинает тормозить.
Как реализовал?
Конечно, лучше взять четырёх мегабайтовый realm и юзать его для простого key value storage.
Пока не работал с SQLite на должном уровне и только читал про синглтон. Решил поебаться с Realm, мне норм. Я же хипстер.
Как бы это основной usecase nosql бд
Мегабайтовый.
Это не оптимально. В самом начале в этом проекте использовали Realm, пока она не сожрала 100 мб.
Задачи у всех разные. В этом то дело.
Вот эти цифры, которые там написаны - они не обязательно правдивы и никто не гарантирует, что в моем случае я получу какие-то приемуществ заменив SQLite на Realm вместо самописного решения.
Храни в бинаре, ёпта, только хардкор
Есть ли у тебя возможность протестить Realm, вместо того, чтобы скриншоты с сайта вставлять?
Цифры в студию, для начала.
Это что, недавно заказчик захотел скан карточки, размер APK вырос x3.5 из-за card.io. можно разбить на архитектуры конечно, но нах этот гемор надо, тупой Гугл плей сам разбивать не могет
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.3.1, 23.3.0, 1.0.0.
Работать с рилмом надо в том потоке в котором ты создал инстанс. Проблема с весом апк решается сплитами.
Вот это тот еще гемор, что пиздец.
У меня данные сваливаются в БД каждый раз из заново созданного потока.
Таковы особенности андроида.
Кукарекаешь что-то невнятное. Рассказывай давай как пользоваться Realm'ом в любом потоке.
В знак подтверждения своей компетенции сообщи мне, где в Android API встречается вот этот момент.
Я с удовольствием послушаю.
>каждый раз из нового потока
Зачем мне еще одна огромная библиотека, еще кучу зависимостей, которые не добавят надёжности?
Будут добавлены проблемы:
1) Возрастет потребление от аккумулятора
2) Раздуется APK
3) Добавится тысяча строк вместе с библиотекой кода в которых очевидно будут ошибки
И что? Девелоперс лав юсинг реилм, если ты не ЛАВ, то это твои проблемы.
Хотя и не особо видны глобальные переходы, но будущее все равно за этой библиотекой. В ней получше сидеть, чем на SQLite выпуска нулевых.
Транзитивная зависимость у другой библиотеки? Чекай dependency tree
Ну скажешь будущее. Если мне много данных хранить не надо, зачем мне реалм? Сейчас оберток реактивных к sqlite полно
Это нужно спросить у разрабов системы Android.
Мне это тоже не нравится. Связано с bluetooth le api.
Ну так синхронизируй с нужным тебе потоком и ебошь в базу. Хули ты?
Берешь такой rx и ебошишь Flowable, если у тебя там потом данных.
*поток
Слышал о mocl, но он вроде как платный.
>1) Возрастет потребление от аккумулятора
А еще аккумулятор быстро садиться, когда белый экран на телефоне присутствует. Представим, что крутится спинер при ожидании запроса из сети. Так что давайте откажемся от белых экранов.
>3) Добавится тысяча строк вместе с библиотекой кода в которых очевидно будут ошибки
Убавиться тысяча строк кода и еще пару тысяч строк кода с использованием реактив джавы. Давай, попробуй мне написать на асин тасках два запроса в сеть, чтобы потом я их занес в БД, выбрал что мне нужно и послал на юай.
>2) Раздуется APK
>РЯЯ, МАЛО МЕСТА
Пользователи имеют минимальную оперативку, с 2МБ памяти, верните мне мой 2008 год.
Prolog не очень дженерик перпс ленгуэдж так что нет. На хаскеле и лиспе можно хуярить. Только смысла нет.
Анончики, Java или Kotlin ? или может Xamarin ?
Haskell.
Ситуация такова: есть девайс, его надо подключить к репозиторию и скачивать новый апк если такой есть. Это дело решается. Дальше нужно этот апк установить, но при установке появляется системный диалог. Возможно ли его убрать? Апк будет просто новой версией аппы. Гугл маркет подключать не вариант.
Почему?
Для стандартного приложения вряд ли, может через accesability, как вирусня всякая. Но наверное для спец приложений с правами админа можно.
https://developer.android.com/guide/topics/admin/device-admin.html
Насчет accessibility все очень зыбко, в последнее время очень много гадости через него работает, поэтому их сейчас жестко в маркете пресуют.
https://stackoverflow.com/questions/26628262/how-to-click-button-in-settings-using-accessibilityservice
>хотя бы оно готовое приложение.
Что из себя должно представлять такое приложение?
Понятное дело, не хеллоуворлд, но чего же тогда?
Крутая игра? Ну да, становиться джуниором самое то для её автора.
Какой-нибудь калькулятор? Смахивает на хеллоуворлд со свистоперделками.
Невнятный комбайн, демонстрирующий твоё обалденное "знание" кучи возможностей языка и платформы?
В общем, я в недоумении.
Соц сеть хотя бы
Как правило, у кандидатов с уже имеющимися приложениями на GitHub шансы на трудоустройство выше. (Особенно, если в них применены все технологии, которые я описал).
Для повышения шансов на трудоустройство, я рекомендую написать тестовое приложение, которое закрепит полученные знания. Каким оно должно быть, и что должно делать — решать вам. Лично мне кажется, что неоспоримым преимуществом перед другими кандидатами будет приложение, которое загружает какие-то данные из сети и отображает в удобном формате для пользователя.
Разве этого будет достаточно? То есть, я сейчас умею в своем приложении получать данные с сервера, с помощью либ отображаю и использую данные, значит я могу пойти ххточкару со своим гитхаб в резюме?
Ретрофит - самое важное, еще джсон поучи, часто нужна кастомная сериализация, глайд/пикассо
С этим, учитывая что ты в остальном нормально шаришь, можно идти искать работу
Вот по поводу Glide (Picasso вроде как уже похоронили). Вот что нужно знать про него? Там буквально все в пару строчек кода все укладывается. Почему на него такой акцент делают постоянно?
Использую у себя: OkHttp, Glide, ButterKnife и GraphQl + RxJava
Как заюзать, как правильно картинки порезать и масштабировать, в чем преимущества глайда а в чем пикассо.
Держу у себя в закладках не первый месяц эту статью. Просто реально интересно, что там описано достаточно для того, чтоб попасть на работу за 40-60к?
>чтоб попасть на работу за 40-60к?
Я не в дс живу, поэтому нахуй такие цифры. Ты нахуй никому не будешь нужен с такими знаниями без опыта над реальными проектами. Поэтому лично я считаю, что нужно хоть куда-нибудь устроиться, пусть это будет даже проект с асинтасками 2010 года выпуска и тебе потребуется перекатить его под рхджаву, я это сделаю и буду пытаться делать, потому что я будущий андройд девелоперГОВНОЕД.
>Просто реально интересно, что там описано достаточно для того, чтоб попасть на работу за 40-60к?
По-моему, за 40к нужно просто изъявить желание работать в ДС. За 60к неплохо бы знать хотя бы основы целевого языка и уметь в какую-нибудь пузырьковую сортировку. Мы точно о джава-джуниоре говорим, а не о стажёре на полставки?
Джуны никому не нужны. Если сам себя до мидла не подтянешь, тебе так и будут перезванивать
>Джуны никому не нужны. Если сам себя до мидла не подтянешь, тебе так и будут перезванивать
Вот и главный петух треда пожаловал.
Есть еще SQLite, но я не очень понимаю, какие там есть ништячки для работы вместе с RxJava. Если найдешь, пиши сюда.
SQLite это просто движок бд, причем тут rx. Есть StorIO, который позволяет чть-чуть спрятать под коврик кишки и прицепить rxjava (первую блеадь) поверх. Есть другие, от джейка что-то есть.
А ты только попробова поймешь. Я не люблю realm из-за того что завишу от его классов и вообще мутабельности. Я привык к StorIO, но пока они не переехали на новый rx, то говно. Есть SqlBrite, минимализм зато с rx. Есть Room, там все есть и он почти всем хорош, но мне не знашел.
>Есть же официальный Room от Гугла, с поддержкой Rx2.
По памяти вроде его в этом году анонсировали. Да и сырой говорят. Но я пока реилмом играюсь, думаю через полгода и его опробую.
Так и думал, что в этом полумертвом-треде какие-то мешки остались.
>>16255
Отвечая на совй же вопрос, наверное стоит поебаться с фрагментами и все-таки дело иметь с ними, ну и для себя на абстрактном уровне поиграться с Conductor, Moxy + Cicerone. И еще погуглить такие либы.
Ну и видосик:
https://www.youtube.com/watch?v=LidlAkrYKGg&index=1&list=PLjzRz85reDwHCvtdr_HqTiS6T7wlHP8BB
Может пригодиться кому.
Как тогда решается проблема - "юзер удалил из списка 1 элемент - не перезагружаем весь адаптер?".
Вообще в модели, более конкретно используется курсор который возвращает модель. В роли модели может использоватся какая-то временная структура данных - если изменения не нужно сохранять немедленно, или они вообще в принципе не сохраняются.
>>16377
> перезагружаем весь адаптер
Это не зависит от того где хранить данные, а от архитектуры списочка. В андроиде такая архитектура что при изменении данных дергается notifyDataSetChanged() - а он сорее всего перезагружает весь список, хотя хуй знает.
Вопрос: как лучше - просто сделать 2 одинаковых класса диалогов с разными именами или обмазываться унификацией и юзать один класс для всего?
С одной стороны - зачем копировать, с другой - потребуются фичи, и уже придется переделывать.
При том что контроллеры(адаптеры) эпокси сделают за тебя все диффы и покажут всё что нужно без лишней ебли.
Потому что все андроидовское говно должно оставаться на уровне ведра и ни в какие модели/презентеры не попадает.
Немного уточню. Выполнение возвращается в точку вызова, и возвращается, судя по всему, true, но в отладчике я даже не дохожу до return true
Да я уже кажется нашел ответ. Просто AS как IDE - говно. Создал лишние булеановские переменные и присвоил им значения, возвращаемые функциями, и увидел как на самом деле отрабатывает функция. Такое чувство, как будто эта скотина втихаря оптимайзит код перед "компиляцией", и исходники уже не соответствуют байт коду во время отладки.
Не ты ли тот сказочный долбаёб, который просил написать приложения какие-то до зимы?
Так нет же, я знаю о step into и step over. Там не вызовы функций. Обычные операторы присваиваний/сравнений.
Может ты прочитаешь про try и catch для начала?
И почему ты выделяешь овердохуя строк, вместо того, чтобы ебнуть на методе?
Вот поэтому ты и сказочный долбоёб.
>И почему ты выделяешь овердохуя строк, вместо того, чтобы ебнуть на методе?
Сначала я так и делал, умник хуев. Потом, когда я понял, что какая то еботня творится, я в отчаянии начал ебашить БП на каждую команду в надежде выловить её выполнение, чтобы лучше понимать, что происходит.
>Может ты прочитаешь про try и catch для начала?
Он что, в java работает как то иначе, как в других языках? Выброшенное исключение в скоупе try не передастся в оператор catch? "String wtf" там чисто чтобы БП на ней поставить, потому что если на фигурную скобку БП уебать, то AS вежливо намекнет мне, что "No executable code found", а мне нужно определить тип исключения и хотя бы message посмотреть.
>Сначала я так и делал, умник хуев.
Да ты что.
>я в отчаянии начал ебашить БП на каждую команду в надежде выловить её выполнение, чтобы лучше понимать, что происходит.
Лучше бы анус свой промылил.
>Он что, в java работает как то иначе, как в других языках?
Нет.
Ты троль что ли? Хватит троллить. Если не троль, то пройдись по каждой строчке, приговаривая вслух каждое действие. Ору с тебя.
>А вообще пикасса скатилась.
Ну я тоже заметил, в этой статье сравнивали глид 3.5 и пикасса 2.5.2, сейчас глид 4+, а вторая все так-же 2.5.2. Еще говорят, что Fresco ничего так.
Не хочу, фреско используется для полного контроля фото, и если твой заказчик совсем пиздец урод и хочет так и сяк.
Давай, прошел уже час, но я жду.
Где-то на официальном сайте находил приложения, которые были написаны благодаря DS.
Хуй знает где найти список. Ну да ладно. Лучше расскажу о функционале:
Вот допустим прозрачный layout на пик1.
Есть куча всяких приколюх типа Arduino.
Но самое главное это DS Plugin SDK, благодаря которому можно писать плагины на java, расширяющие возможности droidscript.
DS позволяет писать приложения быстро и без мозгоебок. Если нужно в полевых условиях собрать кастомный статусбар, калькулятор, камеру, илм что другое, то DS идеально подходит. А сейчас функционал большой.
Это и работа с терминалом, и UI слабо, но есть html, опять же- прозрачные лэйауты, и работа с файловой системой, очень многое реализованно
Не хватает только кастомного layout для нотификаций.
я не тролль.
Билд обнови
> Нужна помощь в решении второго практического задания.
Сам думай.
Смотрел исходники телеграмма. Почему они не используют RxJava, почему нет ретрофита, почему они не используют их то блять? За что?!
Справка тут: https://developer.android.com/reference/android/support/v4/app/Fragment.html#getContext()
Студия его красным не подчеркивает, как бы намекает, что можно, но бля, здесь же всего можно ожидать.
Точно! Это очень радует.
Нахуй пошел, мудило.
> Смотрел исходники телеграмма. Почему они не используют RxJava, почему нет ретрофита, почему они не используют их то блять? За что?!
Потому что Телеграм — говно. В нем нет ничего хорошего кроме маркетинга.
Его разработчики не заботятся о качестве и поддерживаемости кода. Они не умеют в тесты. Они не умеют в декомпозицию кода. Они не могут в ООП. Всё что они могут — это писать гигантскую неподдерживаемую лапшу в одном классе на 12 тысяч строк кода: https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
Они не умеют и не хотят учиться пользоваться системами контроля версий: https://github.com/DrKLO/Telegram/pull/76#issuecomment-34747349
Telegram не хочет быть опенсорс-проектом и не хочет открывать свой исходный код для стороннего аудита, несмотря на то, что декларируется обратное. Проект не взаимодействует с сообществом. Всё что есть на Гитхабе — это единичные коммиты, которые сразу же меняют 50 тысяч строк кода: https://github.com/DrKLO/Telegram/commit/dd679bd7d1713896272016d4e53c3b4ead744683
Отсутствует reproducible build, то есть нет никакой возможности проверить, что готовое приложение действительно собрано из того кода, который доступен на Гитхабе.
Телеграм не заботится о твоей приватности. Шифрования по умолчанию нет, вся переписка хранится на сервере в открытом виде. Чтобы включить шифрование, нужно пользоваться т.н. "секретными чатами", которые используют свой непроверенный протокол, который содержит серьезные огрехи безопасности: https://eprint.iacr.org/2015/1177.pdf
Вместо использования решений с доказанной криптостойкостью, команда Телеграма объявляет "конкурсы взлома", чтобы обмануть общественность. Обман в том, что условия конкурса подобраны таким образом, что невозможность выиграть конкурс вообще никак не связана с безопасностью протокола: https://moxie.org/blog/telegram-crypto-challenge/
Итого: Telegram даёт пользователям ложную иллюзию безопасности, вводит их в заблуждение, притворяется приватным мессенджером, не являясь таким. Не используйте Telegram, не дайте себя обмануть.
> Смотрел исходники телеграмма. Почему они не используют RxJava, почему нет ретрофита, почему они не используют их то блять? За что?!
Потому что Телеграм — говно. В нем нет ничего хорошего кроме маркетинга.
Его разработчики не заботятся о качестве и поддерживаемости кода. Они не умеют в тесты. Они не умеют в декомпозицию кода. Они не могут в ООП. Всё что они могут — это писать гигантскую неподдерживаемую лапшу в одном классе на 12 тысяч строк кода: https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
Они не умеют и не хотят учиться пользоваться системами контроля версий: https://github.com/DrKLO/Telegram/pull/76#issuecomment-34747349
Telegram не хочет быть опенсорс-проектом и не хочет открывать свой исходный код для стороннего аудита, несмотря на то, что декларируется обратное. Проект не взаимодействует с сообществом. Всё что есть на Гитхабе — это единичные коммиты, которые сразу же меняют 50 тысяч строк кода: https://github.com/DrKLO/Telegram/commit/dd679bd7d1713896272016d4e53c3b4ead744683
Отсутствует reproducible build, то есть нет никакой возможности проверить, что готовое приложение действительно собрано из того кода, который доступен на Гитхабе.
Телеграм не заботится о твоей приватности. Шифрования по умолчанию нет, вся переписка хранится на сервере в открытом виде. Чтобы включить шифрование, нужно пользоваться т.н. "секретными чатами", которые используют свой непроверенный протокол, который содержит серьезные огрехи безопасности: https://eprint.iacr.org/2015/1177.pdf
Вместо использования решений с доказанной криптостойкостью, команда Телеграма объявляет "конкурсы взлома", чтобы обмануть общественность. Обман в том, что условия конкурса подобраны таким образом, что невозможность выиграть конкурс вообще никак не связана с безопасностью протокола: https://moxie.org/blog/telegram-crypto-challenge/
Итого: Telegram даёт пользователям ложную иллюзию безопасности, вводит их в заблуждение, притворяется приватным мессенджером, не являясь таким. Не используйте Telegram, не дайте себя обмануть.
Мне хотя бы помочь с первым шагом, с чего начать. А то в теоретическая часть не дает никаких подсказок по поводу решения практической.
Васяны как правило идут нахуй.
Сейчас пытаюсь решить второе практическое задание.
1) Load all cities (pair id-name) if WeatherCityTable is empty from http://openweathermap.org/help/city_list.txt and save them to database
2) Using the information from the first step find id for each current city
3) Load forecast in all cities using one single request http://openweathermap.org/current#severalid
4) Do all this work in NetworkService (you need to modify it to better support multiple requests)
5) Use SQLite API to manage communication
6) Handle configuration changes
7) Modify all the network layer to create a universal way for managing queries with pattern A
>1 txt
Думаю не быстро этот список загрузится. Парсинг параметров из строк в джаве всегда медленный.
100% до этого задания у тебя был пример для deep погружения. Видимо здесь асинтаски нужно юзать. Ну юзай, создаешь класс, где будешь разбирать жсон по косточкам, потом берешь асин таск, подключаешься к нету, если запрос заебись (на скидку, вроде 200) то берешь инпутстрим - расчехляешь и что-то там еще делаешь. Ну и ui обновляешь.
Здесь можно найти работу по всему вышесказанному, QuakeReport - основное, другие две показывают не помню что, но тоже посмотри и скомпилируй. https://github.com/laramartin/android_udacity_course/tree/master/android_networking
С SQLite не работал, поэтому ничего не могу сказать, да и там тоже такого нет. У него есть другая репа https://github.com/laramartin/android_weather но здесь юзаются технологии чуть повыше, не думаю что сгодится, но если на абстрактном уровне разобрать что да как, то можно и понять, как он с SQLite работает.
Я не претендую на роль шарящего, но чуть больше усилий можно приложить и на чтение чужого кода, можно еще на гите искать репы по ключевым технологиям и сравнивать что да как. После окончания залей на гит и я посмотрю, как ты реализовал это.
>Handle configuration changes
Ах, здесь еще поворот экрана, там тоже есть, кстати.
Забыл еще и паттерн А. Ну вот тут есть https://drive.google.com/drive/folders/0B0Z-lYDZWlawTlRDanpCQldBNDQ С примерчиками.
Я бы рекомендовал задрочить это основательно. Чтобы иметь более плотный контакт с девелоперсами. Хотя я только пробегался теоретически.
Вообще там все несколько проще. Тебе дают по сути готовый проект из которого вырезали часть содержимого и сказали, сделай то-то. Вот сам репозиторий https://github.com/ArturVasilov/AndroidSchool/tree/master/SimpleWeatherPatternA с заданием. Лежит в файле WeatherListActivity, но я уже копипастил информацию.
У тебя уже есть 90% проекта, тогда что тебе мешает ебнуть своё что-то? Что за люди пошли.
Пиздец, больше никогда не буду думать что я говнокодер
В гейоси телеграм тоже всрань та ещё. Telegram X вот норм
Олимпиадники же. Это как VK (впрочем писалось всё теми же людьми) https://github.com/vk-com/kphp-kdb . Чисто визуально - сишный неподдерживаемый говнокод, но в своё время он отлично работал и очень быстро.
> понимание XML и JSON.
Это же, блядь, как 2+2. Это сука простейшая хуйня.
Алсо XML сосет у JSON ноудисскас
Кстати да. Ща ето легаси но когда-то была норм штука.
getActivity()
Ну и не пизди. Чмо безрукое.
Блять пиздец.
Есть мнение, что среди разработчиков есть такой подвид как 'хакеры'. Эти ребята не особо заботятся об архитектуре, правилах solid, тестировании. Они просто ебашат код и ебашут быстро, и если хакер хорош - то почти без багов. Проблема в том, что работать в команде они не могут, починить баги и разобраться в коде кроме них никто не может, и если хакир увольняется, разработка стопорться и бизнес ждут непростые времена.
мимо, бывший 'хакир'
Ток не забудь пропатчить DS. Там премиум анально ограничивает сборку АПК, и всякие плагины.
У тебя множество ошибок в слове "говнокодер".
> лел, иди-ка ты нахуй, человек, пишущий весь функционал на 10к строк в одном классе
Не прям весь. Но люблю организованность.
Типа:
var op_post=App.ReadThread(id).getIndex(0);
Удобно же. Глобальные переменные нинужны.
Алсо, методы и свойства всякие.
Статик лишь приближенные имеет свойства глобальности. Иди джаву учи, что ты здесь забыл? Еще скажи, что есть передача по значению и по ссылке, маня.
> public static
Поясните за эту хуйню. Всегда думал, что эта конструкция нужна для создания подобия функций.
та как бы года 4 ее знаю, лол. Причем тут передача по значение или ссылке, долбаеб? Анон сказал, что в джаве нет глобальных переменных, я ему привел пример, что есть и как они пишутся. Глобальная переменная - та, которая доступна в любой момент времени и с любого участка кода. public static идеально с этой задачей справляются. Так что иди-ка ты подучи джаву после сделанной домашки.
>>17803
нет, это надо как раз для глобальных переменных. Чаще даже сюда клеят final , чтоб иметь глобальную константу. Также паблик статик при большом желании можно юзать с методами, которые тоже станут глобальными и юзабельными откуда угодно когда угодно.
Стоит ли тратить время на данную книгу? Или она шибко устарела?
Задавали здесь уже такой вопрос тредов 5 назад. ДА, ДА. Заебали. Вдобавок почитай еще стримы, лямбды и охуей от того, что джава 10 выходит вместе с var.
Тем не менее, телеграмм по сравнению со скайпами, вайберами работал отменно- неплохо для джуна гоанокодера?
>Глобальная переменная - та, которая доступна в любой момент времени и с любого участка кода. public static идеально с этой задачей справляются.
И перед тем как получить доступ до public static переменной, JVM загружает весь класс в память. Формально, до этого момента эта "глобальная" переменная недоступна.
мимокрокодил
спасибо
Теперь приложение грузится относительно быстро, но есть другая проблема - когда активка перерисовывается, превьюшки "мигают". Я так понял, это происходит из-за того, что при перерисовке у меня заново создаётся скролл, заново создаются изначально пустые ImageView, и потом только в них пихаются картинки. Как этого можно избежать? Нужно ли перепиливать саму логику создания и отображения превьюшек?
загрузка изображений через асинктаск для списка в андроиде - плохая идея, все прошли через такой баг, который у тебя. В обще решение таково: выкидывай нафиг асинк таск и забывай про него навсегда (я не тралю, асинк таск обоссали уже все, кто только можно, сам года 3 им уже не пользовался) , а для изображений и их адекватной загрузки - библиотеки Glide либо Picasso в помощь (первая лучше, но тут дело вкуса).
И тогда тебе надо будет в адаптере лишь написать:
Glide.with(context).load("ссылка на картинку").into(itemImageView);
Спасибо, анон, сейчас буду пробовать с глайдом.
>в адаптере лишь написать
Объясни, что ты имел в виду? Я адаптеры использовал только со спиннером дропдаун который, и не понимаю, как это здесь можно использовать. Я только начинаю разбираться в ведроиде и, возможно, по-индусски делаю отображение превьюшек вот тебе сам метод для общей картины, но учти, можешь блевануть с говнокода https://pastebin.com/7kd4ezHe.
Анон, а как работает DownloadManager? Это отдельный линукс-процесс, корой через IPC получает и обрабатывает запросы от приложений на загрузку или же это просто какая-то либа, которая создает дополнительные нужные потоки внутри приложения?
ну попробуй пикассо вместо глайда, у тебя в коде разница будет в одно слове только
>>18143
>Объясни, что ты имел в виду? Я адаптеры использовал только со спиннером дропдаун который
гугли RecyclerView + Adapter Android тебе достаточно инфы выдаст. Тамже ты столкнешься с такой вещью как ViewHolder. И во тв адаптере в методе onBindViewHolder у тебя и будет код типа GlidePicasso.with().load().into();
Ясно, спасибо вот блять, а я надеялся порезать трафик только для определенного PID процесса и надеялся, что больше никаким способом он не сможет пробиться к быстрому инторнету, но что-то придется делать и со всякими там DownloadManager-ами
>ну попробуй пикассо вместо глайда,
Сначала нужно почитать тыщу туториалов по их различию, потом найти фреску - почитать еще про нее и наконец понять, что нужно юзать глайд для самого распр. случя.
С дженериками какая-то ебань, один сахар. С делегатами вообще запилили подобие рефлексии с providedelegate и ручным созданием проперти обьекта. Функции высшего порядка - нетестируемая параша. С аннотациями теперь нужно ебать мозги о том, куда @Inject сунется в байткоде. Код в библиотеках на котлине пишут нечитаемый.
Если моджешь сжать приложение - сожми. Не можешь - используй мультидекс, альтернатив НЕТ.
Тоже делаю библиотеку с webm. Только помимо обычного выбора из списка имеем еще рандомный выбор видео из БД. Превью отображаю с помощью RecyclerView c Glide в адаптере. До этого использовал пикассо, но говорят, что он более не поддерживается разработчиками. Из минусов только большое количество методов в библиотеки, но в этом проекте хватит за глаза.
Идея такая - есть любой текст, который загружается извне (например книга) и Курсор который постепенно закрашивает текст с определенным количеством символов в минуту (настраивается). Служит для чтения по памяти, т.е. читаешь вслух только закрашенный текст, а следующее слово или несколько запоминаешь. Позволит ускорить речь, повысить легкость говорения и развить краткосрочную память, что крайне будет полезно большинству здесь присутствующих и мне. Также будет полезно при изучении языков, можно выпустить на маркете. Если остались вопросы - пишите в телегу @MarkyWithNuts.
Синглтон - паттерн проектирования, юзается когда нужен 1 интсанс класса на всю апку, SP - механизм записи данных в андроиде, обычно туда сохраняют флажки, разные настройки етц.
Благослови тебя господь.
прямо люто двачую. Сам уже месяца 2 как перекатился на котлин (ну как перекатился - на работе сказали, чтоб все андроид разрабы на него переходили в скором времени, вот и пришлось учить и первые проекты уже на нем писать), тоже не заметил особо крутых преимуществ. Ну вернее, одна реально крутая вещь - это функции-расширения, ее в джаве не хватало. А так все, в принципе. Практически любая вещь, которая была в джаве в котлине переделана похожим образом просто с другим синтаксисом (либо в точности да наоборот лол, как наследования, кек). Смысла с этого всего 0. Выглядит как каргокульт, что мол кто-то сказал, что котлин крут, го все на него - и все ринулись. По факту, повторюсь, что там особо плюсов нет. Однако, с другой стороны, работая в сфере айти, надо быть готовым к таким вещам, что один язык будет вытеснять другой, одна среда разработки другую, будут появляться новые архитектуры и паттерны и т.д. Тут ничего не поделать. Зато можно перед остальными выебываться , что знаешь +1 язык и прибавку к зп за это выбивать у начальства)
Такие дела.
Работающий анон, ответь еще на такие вопросы:
1) ОС, под которой разрабатываешь
2) IDE
3) Где отлаживаешь
4) Как тестируете
5) Полезные фишки, если они есть
Хочу написать демку на андроеде для своей БД.
Заодно, если есть приложение Мой Перекресток если нет, поставь, во сколько оценил бы его разработку?
1) лично я на винде 10, но это не принципиально - можно семерку, можно убунту, можно хоть на маке, лол
2) Android Studio, я не представляю, что сейчас вменяемый андроид-разработчик может кодить в другой среде какой-либо
3)эмуляторы + тестовые девайсы + мой личный девайс иногда
4) если ты про юнит тесты, то их не пишем, толку никакого. Тестим сами руками
5) их настолько много и из стольких областей, что ты наверное уточнил бы, что именно тебе нужно)
приложуху ту что ты кинул я бы часов на 600 оценивал, но это я так в ней полазил секунд 40, может там еще подводные есть свои камни и часы могут прибавиться
Еще нужно придумать как фиксить каждый раз запрос в сеть и с загрузкой картинок играться.
Ткните носом, пожалуйста
https://docs.gitlab.com/ce/README.html
Надо написать сервис, который будет выводить в логи каждую строчку с базы
>отобразить содержимое базы данных при нажатии на кнопку
Ну ты же не просто так будешь отображать содержимое в каких-нибудь виджетах аля текствью.
Прилепи recyclerView и присобач в фрагмент и открывай.
Я хочу программно отправлять data-сообщения, для чего нашел библиотеку на понятной мне java
https://github.com/bytefish/FcmJava#fcmclient
До этого я отправлял notification-сообщения, используя консоль, где есть функция отправки сообщения на приложение. Но в документации написано, что отправлять множество сообщений можно только на группу (до 20 устройств. Зачем оно вообще нужно...) или на тему, но ни слова о приложении. Как это делать программно? Регать все токены, а потом перебором слать на токены, или таки есть массовая отправка на приложение?
Но есть штука, которая меня напрягает намного больше. Я написал класс, имплементящий IFcmClientSettings:
https://gist.github.com/CC-Ultra/16a1b88f5aeb69d031db131670cb0d42
который бесхитростно возвращает API_KEY в константе. И затем шлю сообщение:
https://gist.github.com/CC-Ultra/70f590a1bc83ff1d21093fb3092ab5e5
Все это заканчивается
Exception in thread "main" de.bytefish.fcmjava.exceptions.FcmAuthenticationException
API_KEY в константу записал из настроек этого проекта (Ключ Api для веб-приложения). Без него я даже пробовать и экспериментировать не могу. Или мне нужно завести отдельное приложение для рассылки? (Как мне это сделать, если да?) Помогите с ключом
Да, кстати, кто-то может догадывается что может делать метод setRestrictedPackageName() в FcmMessageOptions.builder?
А зачем ты его положил в рут проекта? Перемести его в асеты или ресурсы (resources/raw) если хочешь достать.
Чет не похоже что тебе джава дохуя понятна.
Прочитай сначала https://firebase.google.com/docs/cloud-messaging/server
не возвращайся
ну так уёбывай чё
скам это твоя мать-проститутка
E/Google Maps Android API: Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above
не знаю что делать.
запускал всё по мануалу от гугла, но не работает. на стековерфлоу решения нет
Пиздец, как же я проиграл до слез. Анон, ты лучший! Такая толстая паста просто невозможно. Лучшее, что я видет за эти два треда.
> здесь не всё так однозначно.
JSON.parse()
JSON.stringify()
Всо.
Хотя согласен, в бэкенде всякая херня встречается.
>Фу блядь, фу нахуй.
джуномакака порвалась?
Нет, вот давай ты, поясни в чем толк от того, чтоб писать тесты? Сириусли, бестолковый процесс, отнимающий нужное время.
Вот есть у тебя класс с 2-3 методами, допустим, и ты в тесте тупо прописывает вызов (раз так 10-20) этих методов в различной комбинации входящих параметров. Охуеть, а нахера? Вменяемый разраб и так где нужно поставит проверки на null и прочую обработку. А какие-либо серьезные баги выплывают не во время таких тестов, а уже во время того как пользуются реальные люди и эти баги достаются из того же крашлитикса, как вариант. Опытным путем уже убедились, что быстрее будет разослать приложуху 5-7 своим людям с разными девайсами (внутри конторы это делаем), ручками по экранам пройтись и норм.
Ну а ты рвись дальше
Я не он, но вот мое обоснование.
Пилишь ты такой систему по ТЗ.
Реализовал кучу методов, но в тесты запихал только те, которые описаны в ТЗ как ключевые.
Внедрил систему.
Прошло джва года.
Половина методов не использовалась с момента внедрения.
И тут тебя спрашивают - а система-то по ТЗ может звонить Путину. Может ведь?
Если у тебя тестов нет, ты скажешь - да хз, надо опять тестовый стенд запускать и проверять.
А если есть - ты их запускаешь и отвечаешь - нихера, Путин телефон поменял похоже, надо новый в конфиг прописывать.
Это реальный кейс из энторпрайз системы. С тех пор я делаю проверку всех методов фасада, в любой момент можно все их проверить на работоспособность.
С апи та же херня. Если у тебя нет тестов, ты не можешь пользователей апи посылать нахер, придется каждый раз их жалобы проверять.
Апи двачую, ленивые бекендщики отправляют всякую дичь. Реальная история поле email, на тестовых юзерах все было ок. Сделали рассылку, пошли люди - invalid json token expected string but was boolean. Вот как это вообще можно объяснить.
> Опытным путем уже убедились, что быстрее будет разослать приложуху 5-7 своим людям с разными девайсами (внутри конторы это делаем), ручками по экранам пройтись и норм.
Конечно быстрее. А если и ручками не проходиться, то ещё быстрее. А качество стоит времени и денег. Разработка двумя макаки по хуяк-хуяк методологии, конечно, проще и легче.
Тебя в школе обидели что ли?
Если ты начинающий, то напиши мне тоже, пожалуйста - будем вместе учиться, делиться опытом)
Это мне очень поможет, верю, что здесь есть хорошие люди <3
@SorryImBusy
Дропать нахуй такую работу?
Смотря какие есть варики и как платят.
>Третий месяц копаюсь в чужом говне и пытаюсь это отрефакторить.
Поясни по подробней пожалуйста. Там RX есть-то хоть? А то я пока не подавал заявку на работу.
Тебе показалось наверн, может ты меньше проектов открываешь.
Да что расказывать, кинули на проект на котором я фикшу баги, рефакторю чужой быдлокод, рх нету но зато есть асинктаски из которых во все щели льеться память.
К слову, сука которая это писала, будто прочитала гайд по code conventions и сделала все абсолютно наоборот
"Яндекс API" нехочу пользоваться, потому если послать ему одно слово, то он вернёт лишь один вариант перевода, а если ввести слово в приложение "Гугл переводчик", то тогда в приложение отобразятся и другие варианты перевода.
Ну это так не рабоатет. Ты хочешь именно открыть его со своим словом, или получить результаты? Тогда стоит воспользоваться гугловским апи для перевода.
Я хочу что бы моя программа исполнила вместо меня функцию ввода нужного слова/фразу в приложение. Как я бы написал это слово с клавы, так и программа как то должна как то ввести эти слова в приложение.
API гугла вроде как платный, да, и скорее всего, он будет возвращать только один вариант перевода, как API яндекса. Да и кроме того, придётся самому писать интерфейс для приложения.
сначала научись формулировать свои мысли и идеи, а потом уже приходи сюда с охуенными вопросами
Бля, ну хули тебе не понятно?
Мне нужно написать код, который каким либо образом прикажет приложению "Гугл переводчик" перевести заданный тексткоторый хранится, к примеру, в буфере обмена. Что бы не я сам, печатая, вводил текст в приложение, а что бы программа ввела его за меня.
так а что тебе мешает просто руками его скопировать и вставить туда? темболее если уже в буффере обмена есть текст, то даже копировать не надо, а только вставить
Потому что нужно пальцами для этого тыкать, а я хочу что бы оно само было! А-в-т-о-м-а-т-и-ч-е-с-к-и. Кроме того, руками эти действия отнимают приличное количество времени: сначала нужно удалить предыдущий текст, потом удерживать палец на экране, пока наконец то не появится кнопка "Вставить", потом, после вставки, ещё и нажать кнопку "Перевести". И так по кругу, раз за разом. Я хочу, что бы вся эта лишняя работа проделывалась сама.
Как восхитительно, да еще и асинтаски! Я бы поебался с ними. Я аж заурчал.
>>22815
Ну так делай, что тут непонятного-то. В твоем описанном представлении я представил это как: Выделяешь нужный текст - отправить как - твое приложение - автоматически вставляется - переводиться.
Если в буфере обмена - чекай его - добавь в TabLayout две кнопки - вставка, очистка.
Только тебе все равно придется выделять текст для копирования. Или я не так понял? А вообще, пиздуй делать.
>: сначала нужно удалить предыдущий текст, потом удерживать палец на экране, пока наконец то не появится кнопка "Вставить", потом, после вставки, ещё и нажать кнопку "Перевести".
Так захуярь эти действия в одну кнопку. Петух.
>Я не хочу делать своё приложение для перевода
Нахуй ты сюда тогда пришел?
>я хочу,
Хоти.
> Гуглп для перевода автоматически переводила текст, находящийся в буфере обмена.
Если там нет такой функции, то тебе придется делать СВОЕ приложение. Но ты не хочешь делать свое приложение. Расходимся. Он нас тролленькает.
У меня и так последняя, нет там нихуя.
>>22871
>Нахуй ты сюда тогда пришел?
Я не хочу делать своё приложение для перевода. Я хочу сделать приложение, которое передаст приложению Гугла нужный текст для перевода.
>Он нас тролленькает
Успокойся блядь, никто вас не троллит. Я всего лишь спросил, можно ли написать такой код. Похоже что нет.
> Я не копирую текст сам. Он поступает с компьютера сразу на буфер обмена телефона.
Какая разница? Гуглтранслейт детектит изменения в буфере. Похер каким образом скопиповал.
>Как? Дай хоть какое-то направление
Блять, берешь пишешь в гугол взаимодействие с буфером обмена. Андройд буфер обмена. Заебал блять. Ты ебанутый что ли? Вот скажи, ты действительно ебанутый или ты троллишь нас? Блять, что сложного-то забить информацию в гугол?
В твоей маленькой голове промелькнет вопрос - почему этот чувак не дает мне НАПРАВЛЕНИЯ? Да потому что я блять не хочу гуглить вместо тебя, а если я начну гуглить - я знаю, что в 90% случаев я найду ЭТУ информацию. Пиздуй нахуй. Вот тебе еще бонус от меня.
https://stackoverflow.com/questions/tagged/android?mixed=1
>>23042
Пидарас, лови документацию. Сука, ровно 15 СЕКУНД БЛЯТЬ. Ты ебанутый что ли? У меня блять уже подгорает от мозгоебства твоего. Иди вообще нахуй с треда.
https://developer.android.com/guide/topics/text/copy-paste.html
Создал ресайклвью адаптер. Объявил VIEW_TYPE_ITEM(контент) = 0 и VIEW_TYPE_FOOTER = 1(последний элемент в списке, чтобы поместить прогресс бар). Так же запилил два холдера в соответствии с вышеуказанными элементами. А дальше проверка на наличие данных. Если у нас имеется следующая страница, то показывает FOOTER появляется индикация загрузки в конце списка. Данные загрузились, футер исчез через специальный метод. Вообще это решение есть на стэковерфлоу. Так что ничего нового не рассказал.
Осталось по такому же принципу запилить ошибку запроса. Если запрос некорректен и серверу нечего прислать в замен, отображаем VIEW_TYPE_ERROR
А, ну понятно.
В одном из репе китайской, я видел как чувак унаследовался от RecyclerView, переопределил onScrolled и onScrollStateChanged, добавил листенер, в хмл захуярил свой RecyclerView, ну и еще штучки захуярил. Мне показалось это интересным.
У меня тоже используется onScrolled. Без него особо вариантов нету.
Никогда не поздно.
а что там разбираться то? делаешь дамп памяти и смотришь на что тратится столько, если на что-то нужное, то норм, если какая-то левая хуйня жрет - то не норм, дело нескольких минут
Сам я думаю играться с ним буду через год-два и то, когда найду работу, но очень интересно ваше мнение. Вроде внушает симпатию, чем тот же какой-то там хамарин.
Если ты будешь использовать движок, то он со многим справится и на деле это не такая большая проблема если сильно не завязываться на некоторые возможности.
Фигня, что-то уровня реакт нейтив, но на не взлетевшем дарте. Если гугл таки сможет похоронить ведро и выкатить нам новую ось, причем так что программы будут совместимы и эта ось, фуксия/андромеда/хуегугловеда будет на флаттере то тогда конечно да, но пока ничего серьйзного.
>хипстерская ссанина на скриптах внушает больше доверия чем индустриального уровня хамарин, огромная инфраструктура с# и поддержка майкрософт
ты болен
иди учи хамарин
> индустриального уровня хамарин
На котором до сих пор ни одного крупного приложения не написано?
> огромная инфраструктура с#
Давайте сделаем как в джаве, но только по-другому. Алсо, систему сборки так и не завезли?
> и поддержка майкрософт
Ты считаешь это плюсом?
>На котором до сих пор ни одного крупного приложения не написано?
Не аргумент
>систему сборки так и не завезли?
Какую еще систему сборки, что ты несешь?
>Ты считаешь это плюсом?
А ты считаешь это минусом? Библиотека от Васяна лучше технологии от самой авторитетной и заслуженной ИТ-компании?
Тебе просто нужно понять, что простота = беднота. хелло ворлды, да, пишутся на таком скриптовом говне просто. Хелло ворлды. Ты охуеешь писать что-то большое.
В хамарин ты можешь нашлепать формочек, скочать библиотек из nuget под любые задачи, хуяк, хуяк, и программа готова.
Анон, подскажи!
Есть условное приложение, которое по нажатию кнопок отправляет разные POST-запросы на сервер и что-то делает с результатом. Как лучше всего сделать это асинхронно? Сейчас у меня всего одно действие и оно реализовано с помощью AsyncTask в активити, но для каждого запроса отдельный таск пилить не очень красиво. Да и иде ругается на "This AsyncTask class should be static or leaks might occur".
Попробовал по-другому - создал отдельный класс RequestsAsync и вынес туда этот таск. В классе есть метод send в котором создаётся таск с нужными параметрами. Всё статичное. Всё было бы збс, но куда теперь выводить результат запроса? Как получить доступ к активити без риска утечки данных?
Может вообще стоит по-другому запилить? В андроиде нуб, может есть какие-нибудь примеры, как сделать универсальный класс для асинхронных HTTP запросов?
[CODE]
public class RequestsAsync {
private static boolean processingRequest = false;
public static void send(String test) {
if (!processingRequest) {
processingRequest = true;
asyncRequest request = new asyncRequest("/api/test");
request.params.put("test", test);
request.execute();
}
}
static class asyncRequest extends AsyncTask<Void, Void, String> {
Map<String, String> params = new TreeMap<>();
NetHelper netHelper = new NetHelper();
String url;
private asyncRequest(String url) {
this.url = netHelper.SRV_URL + url;
}
@Override
protected String doInBackground(Void... arg) {
String request;
try {
request = netHelper.postData(url, params);
} catch (Exception e) {
e.printStackTrace();
} finally {
processingRequest = false;
}
return request;
}
@Override
protected void onPostExecute(String request) {
super.onPostExecute(request);
// щито дальше?
}
}
}
[/CODE]
Анон, подскажи!
Есть условное приложение, которое по нажатию кнопок отправляет разные POST-запросы на сервер и что-то делает с результатом. Как лучше всего сделать это асинхронно? Сейчас у меня всего одно действие и оно реализовано с помощью AsyncTask в активити, но для каждого запроса отдельный таск пилить не очень красиво. Да и иде ругается на "This AsyncTask class should be static or leaks might occur".
Попробовал по-другому - создал отдельный класс RequestsAsync и вынес туда этот таск. В классе есть метод send в котором создаётся таск с нужными параметрами. Всё статичное. Всё было бы збс, но куда теперь выводить результат запроса? Как получить доступ к активити без риска утечки данных?
Может вообще стоит по-другому запилить? В андроиде нуб, может есть какие-нибудь примеры, как сделать универсальный класс для асинхронных HTTP запросов?
[CODE]
public class RequestsAsync {
private static boolean processingRequest = false;
public static void send(String test) {
if (!processingRequest) {
processingRequest = true;
asyncRequest request = new asyncRequest("/api/test");
request.params.put("test", test);
request.execute();
}
}
static class asyncRequest extends AsyncTask<Void, Void, String> {
Map<String, String> params = new TreeMap<>();
NetHelper netHelper = new NetHelper();
String url;
private asyncRequest(String url) {
this.url = netHelper.SRV_URL + url;
}
@Override
protected String doInBackground(Void... arg) {
String request;
try {
request = netHelper.postData(url, params);
} catch (Exception e) {
e.printStackTrace();
} finally {
processingRequest = false;
}
return request;
}
@Override
protected void onPostExecute(String request) {
super.onPostExecute(request);
// щито дальше?
}
}
}
[/CODE]
Даёпт что [CODE] не работает? Извиняюсь за криворукость.
>>26046
Запрос делать к сервису, с которого тяну данные или google.com?
Мне интересно другое, нежели простой вывод предупреждения об отсутствии коннекта. Как сделать, чтобы выполнение программы приостановилось, не вызвались методы и прочие действия? Как делается у профессиональных разработчиков это?
>Запрос делать к сервису, с которого тяну данные или google.com?
Лучше конечно к своему, тебе он интересней.
>Как сделать, чтобы выполнение программы приостановилось, не вызвались методы и прочие действия?
Так не делается, особенно на ведре.
а зачем ты пихаешь данные в интент активити?
В чем различие между recyclerView.addOnScroll... и adapter.setOnLoadMoreListener (как здесь - http://android-pratap.blogspot.ru/2015/06/endless-recyclerview-with-progress-bar.html)
Использую исключительно продукцию гейпла.
На учебе учим сейчас джаву.
Появилась идея вкатиться таким образом в андроид.
Вопрос: помешает мне это как-то при разработке или достаточно будет гайдлайнов по ui почитать от гугла и все пойдет как по маслу?
Да блять вкатываться в гейось, учить на учебе джаву - какая-то каша в голове будет, ей богу.
Какая к черту каша? Та джава что ты будешь "учить" к ведру будет иметь весьма посредственное отношение. Вот нахуй тебе как пользователю айоси писать под ведро?
Да я и не хочу особо на свифте/обж-си писать.
Ага, понял. Буду пробовать. Спасибо.
Спасибо, переписал. По началу не мог догнать, что везде нужно импорт библиотек на support.v4.app.Fragment поставить. Еще при данном подходе прочитал, что нужно делать статический конструктор для фрагмента. Правильно ли это? Или сейчас по другому профессионалы делают?
Сам овер5 лет во фронт-енде
Насколько велик шанс, что я делаю все правильно и буду нарасхват?
> Сам овер5 лет во фронт-енде
Это уже не лечится.
> Насколько велик шанс, что я делаю все правильно и буду нарасхват?
Стремится к нулю. Иди лучше в js-тред.
Ты правда считаешь, что формочки на андроиде чем-то принципиально сложнее, чем формочки на реакте?
Не уверен, что профессионалы сейчас вообще используют фрагменты, но да, так делать правильно. Вообще это шаблон для создания фрагментов в самой студии. Ты сохранял эти данные в активити, а надо было их передавать самому фрагменту через аргументы, как ты теперь и сделал, так что ты всё правильно понял.
>профессионалы сейчас вообще используют фрагменты,
Гугол на каждой конференции ИО втирает про невьебенческие силы фрагментов.
Ну так ищи инфу хули. Но это будет бредом, учить и андройд и иос, зачем? Да еще и из фронтенда. Макак сокращают?
Ну да, но это не повод отказываться от фрагментов. Все равно по канону спрашивать будут на собеседованиях.
Пока решил на этом варианте остановиться. Библиотека Graphql имеет поддержку из коробки RxJava, что позволяет за пять минут переписать. В данном виде асинхронность запросов поддерживается, менять необходимости нет.
>написано на Python
>использующие PyQt5?
> скомпилировать приложение для андроида,
> скомпилировать
Ты вообще откуда вылез?
> Какая вероятность что я стану пидоромиосразработчиком
Это тоже самое, как выебать девушку трапа нажравшись.
Не узнаешь, пока не попробуешь. И, если ты бы выебал ту секретную девушку, считал бы себя пидором? Это обязательный вопрос.
Странно это говорить, особенно глядя на говнокод со скриншота, но ты видимо всё-таки развиваешься. В предыдущих тредах тебя сразу нахуй посылали, а тут даже на настоящие ответы у кого-то терпения хватает.
ПЕРЕКАТ https://2ch.hk/pr/res/1127618.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1127618.html (М)
Ну и что значит?
Ты просто мудак ебучий, который не может даже догнать на какой хуй это всё нужно и, видимо, не слышал про оптимизацию. Твой уровень — хеллоуворлд калькуляторы.
Это копия, сохраненная 11 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.