> Хочу вкатиться в разработку под Android! С чего начать? Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде. После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение. В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Не хочу писать на 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. И хотя бы оно готовое приложение.
Есть на борде аносы, которые зарабатывают на своих приложениях в сторе. Я имею ввиду свои личные пет-прожекты и поделия, с продажи которых или с рекламы в которых падает в карман копеечка. Было б интересно послушать истории неуспеха
>>1111099 Каждый производитель устройства пишет собственную прошику. Насколько знаю, Google запустила программу не помню как нзывается точно, что-то вроде Android One, чтобы избавиться от такого положения дел.
>>1111163 Иногда можешь, но много хуйни может потребовать написать самому. Сейчас последняя версия ведра 8.1. >>1111131 Trebble называется, но это не панацея, пока вендоры могут класть хуй на пользователей, а кто не ложил и так обновляет.
>>1111851 Нет, не указывал. Теперь работает правильно, спасибо. Раз пошла такая темочка, то как мне правильно кнопочки "большого пальца вверх" сделать? Ну что б при нажатии на них была анимация, как со стандартным Button. Пока сейчас просто ImageView для предварительного просмотра.
насколько сложно будет замутить такую тему - видеопоток заворачивантся покадрово на сервак, откуда приходят модифицированные кадры, которые уже отображаются на экране.
> заиметь йоба кудахтер чтоб запустить свое код > учить богом забытую джаву > учить странныйнелогичный андроид > учиться делать умирающие приложения от которых большая часть мира уже отказалась > две с половиной вакансии за месяц уровня Я просто не верю что мыслящий человек по собственной воле засунет свою голову в петлю андроида.
Gogle Drive. OAuth 2.0 client ID и API key В чем разница? Я знаю, что OAuth 2.0 client ID нужен для авторизованных реквестов, а APi key для неавторизованных вызовов. Но как выглядит эта разница на практике?
>>1112196 Я правильно понимаю, что если используется приватная папочка приложения на гуглодиске - достаточно лишь API key, а если нужен доступ к порнушке пользователя в ЕГО папках - тут уже нужна авторизация?
>>1112122 >Я просто не верю что мыслящий человек по собственной воле засунет свою голову в петлю андроида. Я на этим хлеб буду зарабатывать. А что ты мне прикажешь, яблоко осваивать? Я лучше на андройд сяду и плевать, что я буду ебаться со всем. Я хочу нормально жить в этом мире, а не сидеть в сисадминах.
Как запускать приложение на планшете (на самом деле с минимальной шириной 600 dp) в лендскейпе, а на экранах с меньшей шириной - в портретной ориентации? Я создал вариации лейаутов, но вот именно на планшете, хоть тот и лендскейпе лежит, приложение запускается в портретной ориентации.
Аноны, у меня в recycler view в каждом айтеме есть прогресс бар, как правильно его обновлять из фрагмента. Пока что передают обновленное значение в адаптер, а там notifyItemChanged(position) и уже через bindViewHolder это обновленное значение попадает в айтем где обноволяет прогресс бар, но при этом вся вьюха перересовывается и постоянно мерцает при обновлении. Как правильно делают в таких ситуациях?
>>1112395 Ну я передают свой интерфейс в onCreateViewHolder, и в конструкторе ViewHolderа ставлю clickListener как мне надо, а фрагмент с рейсайклером имплементит мой интерфейс нажатий. Может есть и лучшие решения, тоже бы послушал.
да ладно вам, что не так? Нормальная девушка-блондинка в модных ныне очках, че вы разошлись, смермотокзикозники? Почему вас реально это настолько ебет в тредах про програмач? П.С. двачую, что на месте ОПа я бы принципиально эту картинку только бы и ставил и наслаждался б багетами даунов
Всем привет. Здесь есть те, кто знаком с Oauth2? Хочу написать свой клиент вк, но не в зуб ногой с этими ключами и авторизацией, туго движется. Был бы признателен, если на пальцах от момента ввода данных объяснили что там и как. Спасибо
Аноны, надо ли знать протокол http для моб разработки?? Нужно ли понимание как функционирует сервер, бекенд, навыки работы в командной строке Linux?? Можно ли писать под IOS без мака(компьютера от эппл)? Где-то читал, что написав код на c++, можно его скомпилить кроссплатформенно для IOS и для Android, это правда?
>>1110463 (OP) Анон, как в андроиде внутри организовано общение с сетевым стеком? Мне, юникс сишкоблядине, не совсем ясно, как оно работает: в обычном линуксе работа идет через сокеты и их системные вызовы, в андроиде же это судя по всему организовано через какой-то хитрожопый IPC/RPC (т.е. пользовательское приложение общается с внутренним процессом вместо прямых системных вызовов), но я все-равно не могу понять, какой процесс отвечает за собственно общение с ядром.
>>1113189 Хм, а ты прав, софт действительно использует обычные жабовские сокеты, никакого ебнутого IPC нет. Я пробовал с помощью cgroups+iptables зарезать трафик для определенного приложения, но он нифига не резался, из-за чего я решил, что трафик идет через что-то другое. В итоге оказалось, что при запуске процесс (в моем случае - Webview browser) всего лишь хуярит какие-то свои сложные правила и таблицы роутинга для процесса, которые перекрывали мои.
Драч, посоветуй. Есть 2 активити: на первой есть список элементов, по нажатию на который открывается activityForResult второй активити для просмотра/редактирования информации. Также, во второй активити есть ViewPager для свайпа фрагментов, в которых собсна вьюхи с полями элемента списка. Вот мне в адаптер ViewPage'а нужно скормить список, который содержится в фрагменте со списокм в главной активити. Как это лучше сделать? Обернуть список в класс, унаследовать его от Serializable и в intent пихать? Класть для ArrayList в синглтон? Или есть способ, о котором я не знаю?
>>1113217 Самый простой вариант - сделать Parcelable. Но лучше что бы был какой-нибудь репозиторий с этой ебалой, и его инстанс инжектился в обе активити/фрагмента.
>>1113217 Если очень много данных делай синглтон(в intent по моему в последний версиях не больше мегабайта можно пихать), в остальном на мой взгляд лучше юзать интенты с parceable.
>>1113249 Дроны гугла к тебе прилетят и посадят на бутылку. На швабре была статья чувака котоырй клепал однотипные клоны говноигр по всяким франшизам-мультикам и греб бабосы с рекламы. Менял эмейлы/карточки и даже железо, еще айпи прятал за проксями, так как гугл выкпуал и банил аккаунты. Но вроде ничего страшного в реальном мире не было. Чисто теоретически в чем проблема помочь бомжу зарегать карточу, эмейл и аккаунт разработчика? Ничего страшного, только за пиздинг контента могли бы доебаться, но интернет еще вроде не под бацькой.
>>1110463 (OP) Вы когда-нибудь работали с андроидом? Писали под него приложения/игры? Видели его 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 режим, и как-то открыв проект через месяц обнаружил его несобирающимся, хотя ничего не менял. Это беспредел.
Так к чему я это все. Из всего вышесказанного, можно сделать вывод что общий уровень квалификации работников гугла экстремально низкий. Так же основной упор на собеседованиях идет на малоприменимые на практике математические задачи, что ведет к отрицательному отборку, в итоге в гугл попадают студенты-первокурсники, задрочившие сборник олимпиадных задач, имеющие большое самомонение(как же, в гугле же работают), но с отсутствующей квалификацией. Так же в компании сущетсвуют ЛГБТ-квоты, когда нанимают сотрудников не потому что они хорошие специалисты, а потому что они путают мальчиков с девочками.
>>1113434 Хорошо пишешь, но вывод идиотский. Уровень квалификации довольно высокий, но сама суть андроида - добавлять новые фичи asap, а не когда они окаменеют как говно мамонта, а также поддерживать как можно большее количество говнопроизводителей, которые вносят критическое количество говнокода и неразберихи. В то же время в iOS - диаметрально противоположный подход, прямо как альфа и омега, лол. Что лучше - вопрос философвский
>>1113434 > Впечатление что код писали первокурсники набранные по ЛГБТ-квотам. Заметьте, я говорю «писали код», а не «проектировали», потому что проектированием там не пахнет. Начнем с того, что изначально ОС была разработана не Гуглом, а Android Inc, которая к Гуглу никакого отношения и не имела. Большинство ошибок проектировки (которые, кстати, и Гугл признает) — на её совести.
> Глобальные косяки в проектировании, тащатся с первых версий и не исправляются в принципе. А как ты предлагаешь их исправлять? Вот пересоздание activity при повороте, например. Гуглу нужно изменить это поведение, перелопатить сотни тысяч строк кода и сломать 90% пользовательских приложений?
> ребята даже язык не смогли выбрать для проекта Выбор Джавы в качестве основного языка разработки был важен для привлечения большого числа разработчиков, которые могли сразу брать и писать код. Если бы API было на Плюсах, стоимость и сложность разработки приложения выросли бы многократно.
> Android Studio — глючное, тормозное ужасное говно Ты, видимо, XCode или Xamarin Studio никогда не использовал. IDE от JetBrains считаются стандартом в коммерческой разработке ПО.
> Gradle — вообще ночной кошмар. > За время за которое ant собирал проект, gradle даже запуститься не успевает Потому, что ant умеет чуть менее, чем нихуя. Еще можно снова сравнить с iOS-разработкой, где до сих пор нет нормальной системы сборки и нормального менеджера пакетов.
> общий уровень квалификации работников гугла экстремально низкий > упор на собеседованиях идет на малоприменимые на практике математические задачи Гугл работает с оргомными массивами данных, где применение асимптотически неоптимального алгоритма выльется в огромные издержки.
Когда я получил данные с сервера, они помещаются во вьюшки, допустим RecyclerView с обработчиком нажатия, где по клику вызывается второе активити и тоже взаимодействует с сервером. Тот самый первый запрос который я вызвал, удаляет же вьюшки так? Мне нужно по идее запихнуть эти данные в БД и тогда, когда я захочу нажать кнопку назад из второго активити и перейти в первое, я просто вытащу это из БД. Или есть другие пути?
>>1113463 эм, ты же понимаешь, что тут: >пишите single activity app >не юзайте fragments back stack противоречие и деление на ноль?
Либо ты пишешь приложение с ОДНОЙ активити и там у тебя будет уже много фрагментов в стеке. Либо у тебя вообще нет головной боли с фрагментами, ты используешь архитектуру с множеством активити. А сингл активити без фрагментов ты не сделаешь даже в тестовом задании для перехода в адекватную контору.
>>1113463 Ну я пишу с сингл активити. Что именно тебе не понятно? Вообще вроде как при таком подходе есть какие-то проблемы с nested fragments в view pagerах, но я в них использую обычные вюхи.
Но бэкстек у фрагментов конечно юзаю, как тот петушок обосновывал свой вскукарек? Вручную перехватывать кнопку назад и писать свой аналог бэкстека? Говно какое-то, пидоры блять.
Котаны, подскажите есть ли сейчас в андроиде способы работы с диалоговыми окнами без анальной боли вроде setTargetFragment и onActivityResult. Желательно с минимумом велосипедостроения и крашей.
>>1113613 Ты хоть прочитал что там написано? Включи виртуализацию в биосе(если она есть у твоего проца) и установи специальнюу мокропиську для винды - haxm. Или используй медленный arm эмулятор КАК ТЕБЕ ПОДСКАЗЫВАЮТ В ЕБАНОМ СООБЩЕНИЕ, БЛЯ
>>1113860 Вартан, лол. Я думал это какой-нибудь новый модный русский андроидопетушок с подворотами. Один хуй, твой качок такой себе авторитет, это как раз школьники любят выбрать себе ОВТАРИТЕТА и смотреть ему в рот без оглядки на здравый смысл. Из "его" либ юзаю только ретрофит. В остальных либах он один из мелких контрибьютеров. ButterKnife параша
>>1113924 >Вартан, лол. Я думал это какой-нибудь новый модный русский андроидопетушок с подворотами. Один хуй, твой качок такой себе авторитет, это как раз школьники любят выбрать себе ОВТАРИТЕТА и смотреть ему в рот без оглядки на здравый смысл. Из "его" либ юзаю только ретрофит. В остальных либах он один из мелких контрибьютеров. Любишь ебаться без реактива, когда весь мир признал его и уже вторая версия стабилизируется? Ебись дальше, обоссышь со своими асинтасками и паттернами хуернами.
>>1113541 Присоединяюсь к вопросу: какой сейчас самый лучший вариант работать с диалогами внутри фрагментов или активити, при этом корректно отрабатывая переворот экрана, не теряя target fragment и не теряя активити/колбеки?
>>1114156 > Он закроется при перевороте Нет, не закроется. Из-за того, что он DialogFragment, FragmentManager сам тебе его восстановит после переворота. Или ты неправильно его используешь
> Надо как-то не потерять колбек В смысле не потерять? Пользователь жмакает на кнопку, передаешь событие дальше своему презентеру или что там у тебя.
>>1114159 Что если мне надо передать клик в родительский фрагмент? Как это лучше сделать? В презентер только если через синглтон передавать, который реализует презентер.
>>1114167 Вообще, не вижу тут ничего макаронного. Тот же листенер, по сути, только вид с боку. Получил бродкаст в своем родительском фрагменте, обработал или передал в преентер, всё.
Есть активити, в ней присутствует список. Пользователь выбирает один объект из списка посредством клика и ему открывается второе активити. Стоит ли это активити делать фрагментом? С учетом того, что в этом активити втором показывается еще один список, продуктов например?
Есть фрагмент, в нём грузится инфа в листвью и если всё в порядке гружу над ним текствью с количеством элементов. При вызове другого фрагмента и и возврате к этому эта текствью возвращается к своему исходному состоянию - она не видна. Есть способ решить это с помощью лайфсайкла? Потому что сейчас это завязано на переменную isCreated в onCreateView.
>>1114298 Использую, иначе бы оно грузило инфу и показывало текствью всегда, независимо от переходов. А сейчас состояние прокрутки листвью восстанавливается норм, а текствью исчезает, поскольку изначально, пока инфа не пришла, оно скрыто.
>>1114304 Если я правильно понял. Корень твоей проблемы в том что у тебя вью хранит бизнес-инфу (информацию об удачности запроса), тогда как вью должно хранить только свою собственную внутренную инфу, а все что касается бизнес логики запрашивать у хозяина. Конкретно проблема в том что даже у существующих фрагментов вью может постоянно создаваться-уничтожатся (для экономии памяти), и в твоем случае при пересоздании вью просирается состояние текствью - так как вью не предназначено для хранения инфы, оно просто выкидывается нахуй. Тебе нужно добавить проперти в фрагмент с состоянием запроса - в процессе/успешно/неуспешно и при создании вью (а также при изменении проперти) приводить вью к внешнему виду.
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 асинктаска. Подумал, может это костыльно и есть какой-то способ сохранить вьюху или перекинуть код в другие события жизненного цикла, при переходах по бэкстеку.
Есть sqlite, в которой хранится 65535 записей с 2 колонками (float) и двумя колонками id. Данные необходимо выгрести все оттуда, обработать и отобразить или передать в файле на сервер. Естественно выборка работает ОЧЕНЬ медленно (16 секунд на выборку), а вставка через некоторое время, когда база заполнится начинает тормозить.
Какое здесь может быть оптимальное решение по ускорению? Известно, что в проекте есть только 2 запроса, связанных с этой таблицей: вставка одной записи и выборка всех сразу.
>>1114409 > Естественно выборка работает ОЧЕНЬ медленно (16 секунд на выборку), а вставка через некоторое время, когда база заполнится начинает тормозить. Как реализовал?
Ну давайте еще похоливарим. >РЯЯЯЯ Очень большой файл >РЯЯЯЯЯЯ Иногда случаются непредвиденные сбои Топовые компании уже юзают его, недавно видел в Pinterest. И хватит уже себя обманывать, за реилмом будущее.
>>1114460 Задачи у всех разные. В этом то дело. Вот эти цифры, которые там написаны - они не обязательно правдивы и никто не гарантирует, что в моем случае я получу какие-то приемуществ заменив SQLite на Realm вместо самописного решения.
Помню юзал реалм, не понравилось что работать с объектами только на main треде (или другая какая-то лабуда с потоками)ну и весит много, да. Это что, недавно заказчик захотел скан карточки, размер 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.
>>1114483 В знак подтверждения своей компетенции сообщи мне, где в Android API встречается вот этот момент. Я с удовольствием послушаю. >каждый раз из нового потока
>>1114485 Зачем мне еще одна огромная библиотека, еще кучу зависимостей, которые не добавят надёжности? Будут добавлены проблемы: 1) Возрастет потребление от аккумулятора 2) Раздуется APK 3) Добавится тысяча строк вместе с библиотекой кода в которых очевидно будут ошибки
>>1114487 И что? Девелоперс лав юсинг реилм, если ты не ЛАВ, то это твои проблемы. Хотя и не особо видны глобальные переходы, но будущее все равно за этой библиотекой. В ней получше сидеть, чем на SQLite выпуска нулевых.
>>1114487 >1) Возрастет потребление от аккумулятора А еще аккумулятор быстро садиться, когда белый экран на телефоне присутствует. Представим, что крутится спинер при ожидании запроса из сети. Так что давайте откажемся от белых экранов.
>3) Добавится тысяча строк вместе с библиотекой кода в которых очевидно будут ошибки Убавиться тысяча строк кода и еще пару тысяч строк кода с использованием реактив джавы. Давай, попробуй мне написать на асин тасках два запроса в сеть, чтобы потом я их занес в БД, выбрал что мне нужно и послал на юай.
>2) Раздуется APK >РЯЯ, МАЛО МЕСТА Пользователи имеют минимальную оперативку, с 2МБ памяти, верните мне мой 2008 год.
Анон, возможно ли проапдейтить апк автоматически без участия человека? Ситуация такова: есть девайс, его надо подключить к репозиторию и скачивать новый апк если такой есть. Это дело решается. Дальше нужно этот апк установить, но при установке появляется системный диалог. Возможно ли его убрать? Апк будет просто новой версией аппы. Гугл маркет подключать не вариант.
>>1110463 (OP) >хотя бы оно готовое приложение. Что из себя должно представлять такое приложение?
Понятное дело, не хеллоуворлд, но чего же тогда? Крутая игра? Ну да, становиться джуниором самое то для её автора. Какой-нибудь калькулятор? Смахивает на хеллоуворлд со свистоперделками. Невнятный комбайн, демонстрирующий твоё обалденное "знание" кучи возможностей языка и платформы? В общем, я в недоумении.
>>1114981 Как правило, у кандидатов с уже имеющимися приложениями на GitHub шансы на трудоустройство выше. (Особенно, если в них применены все технологии, которые я описал).
Для повышения шансов на трудоустройство, я рекомендую написать тестовое приложение, которое закрепит полученные знания. Каким оно должно быть, и что должно делать — решать вам. Лично мне кажется, что неоспоримым преимуществом перед другими кандидатами будет приложение, которое загружает какие-то данные из сети и отображает в удобном формате для пользователя.
>>1114991 Разве этого будет достаточно? То есть, я сейчас умею в своем приложении получать данные с сервера, с помощью либ отображаю и использую данные, значит я могу пойти ххточкару со своим гитхаб в резюме?
>>1115001 Ретрофит - самое важное, еще джсон поучи, часто нужна кастомная сериализация, глайд/пикассо С этим, учитывая что ты в остальном нормально шаришь, можно идти искать работу
>>1115002 Вот по поводу Glide (Picasso вроде как уже похоронили). Вот что нужно знать про него? Там буквально все в пару строчек кода все укладывается. Почему на него такой акцент делают постоянно? Использую у себя: OkHttp, Glide, ButterKnife и GraphQl + RxJava
>>1115006 Держу у себя в закладках не первый месяц эту статью. Просто реально интересно, что там описано достаточно для того, чтоб попасть на работу за 40-60к?
>>1115008 >чтоб попасть на работу за 40-60к? Я не в дс живу, поэтому нахуй такие цифры. Ты нахуй никому не будешь нужен с такими знаниями без опыта над реальными проектами. Поэтому лично я считаю, что нужно хоть куда-нибудь устроиться, пусть это будет даже проект с асинтасками 2010 года выпуска и тебе потребуется перекатить его под рхджаву, я это сделаю и буду пытаться делать, потому что я будущий андройд девелоперГОВНОЕД.
>>1115008 >Просто реально интересно, что там описано достаточно для того, чтоб попасть на работу за 40-60к? По-моему, за 40к нужно просто изъявить желание работать в ДС. За 60к неплохо бы знать хотя бы основы целевого языка и уметь в какую-нибудь пузырьковую сортировку. Мы точно о джава-джуниоре говорим, а не о стажёре на полставки?
Всем привет. Появилась необходимость в использовании базы данных для моего проекта. Как это сделать я пока что не знаю, т.к никогда с бд до этого я не сталкивался. Как мне создать и подключить бд к своему проекту? Желательно конечно простым и понятнвм языком
>>1115224 SQLite это просто движок бд, причем тут rx. Есть StorIO, который позволяет чть-чуть спрятать под коврик кишки и прицепить rxjava (первую блеадь) поверх. Есть другие, от джейка что-то есть.
>>1115239 А ты только попробова поймешь. Я не люблю realm из-за того что завишу от его классов и вообще мутабельности. Я привык к StorIO, но пока они не переехали на новый rx, то говно. Есть SqlBrite, минимализм зато с rx. Есть Room, там все есть и он почти всем хорош, но мне не знашел.
>>1115326 >Есть же официальный Room от Гугла, с поддержкой Rx2. По памяти вроде его в этом году анонсировали. Да и сырой говорят. Но я пока реилмом играюсь, думаю через полгода и его опробую.
Читаю коменты от выступления гугла на ИО 17-ого года. Это действительно пиздец что ли с фрагментами? Массивные компании юзают сторонние либы или заставляют ебаться с реализацией от гугла?
При использовании паттерной MVP/MVC где хранят содержимое к примеру списков? В модели? Как тогда решается проблема - "юзер удалил из списка 1 элемент - не перезагружаем весь адаптер?".
>>1116377 Вообще в модели, более конкретно используется курсор который возвращает модель. В роли модели может использоватся какая-то временная структура данных - если изменения не нужно сохранять немедленно, или они вообще в принципе не сохраняются.
>>1116377 > перезагружаем весь адаптер Это не зависит от того где хранить данные, а от архитектуры списочка. В андроиде такая архитектура что при изменении данных дергается notifyDataSetChanged() - а он сорее всего перезагружает весь список, хотя хуй знает.
>>1116398 >>1116377 > Это не зависит от того где хранить данные, а от архитектуры списочка. В андроиде такая архитектура что при изменении данных дергается notifyDataSetChanged() - а он сорее всего перезагружает весь список, хотя хуй знает. Освойте уже DiffUtil
Есть 2 диалога со списками: в одном список из номеров телефонов с двумя чекбоксами, а в другом - то же самое, но вместо номеров телефонов некие идентификаторы абонентов. Вопрос: как лучше - просто сделать 2 одинаковых класса диалогов с разными именами или обмазываться унификацией и юзать один класс для всего?
С одной стороны - зачем копировать, с другой - потребуются фичи, и уже придется переделывать.
>>1116513 Да я уже кажется нашел ответ. Просто AS как IDE - говно. Создал лишние булеановские переменные и присвоил им значения, возвращаемые функциями, и увидел как на самом деле отрабатывает функция. Такое чувство, как будто эта скотина втихаря оптимайзит код перед "компиляцией", и исходники уже не соответствуют байт коду во время отладки.
>>1116522 Нет, не я. >>1116520 Ну давайте, токсичные уёбки, расскажите мне, почему нажатием F8 по последовательным операциям я вижу, как активная строка кода перепрыгивает туда сюда, а некоторые операции просто не выполняются, хотя должны?
>>1116529 Может ты прочитаешь про try и catch для начала? И почему ты выделяешь овердохуя строк, вместо того, чтобы ебнуть на методе? Вот поэтому ты и сказочный долбоёб.
>>1116530 >И почему ты выделяешь овердохуя строк, вместо того, чтобы ебнуть на методе? Сначала я так и делал, умник хуев. Потом, когда я понял, что какая то еботня творится, я в отчаянии начал ебашить БП на каждую команду в надежде выловить её выполнение, чтобы лучше понимать, что происходит. >Может ты прочитаешь про try и catch для начала? Он что, в java работает как то иначе, как в других языках? Выброшенное исключение в скоупе try не передастся в оператор catch? "String wtf" там чисто чтобы БП на ней поставить, потому что если на фигурную скобку БП уебать, то AS вежливо намекнет мне, что "No executable code found", а мне нужно определить тип исключения и хотя бы message посмотреть.
>>1116531 >Сначала я так и делал, умник хуев. Да ты что. >я в отчаянии начал ебашить БП на каждую команду в надежде выловить её выполнение, чтобы лучше понимать, что происходит. Лучше бы анус свой промылил. >Он что, в java работает как то иначе, как в других языках? Нет.
Ты троль что ли? Хватит троллить. Если не троль, то пройдись по каждой строчке, приговаривая вслух каждое действие.Ору с тебя.
>>1116581 >А вообще пикасса скатилась. Ну я тоже заметил, в этой статье сравнивали глид 3.5 и пикасса 2.5.2, сейчас глид 4+, а вторая все так-же 2.5.2. Еще говорят, что Fresco ничего так.
>>1116821 Где-то на официальном сайте находил приложения, которые были написаны благодаря DS. Хуй знает где найти список. Ну да ладно. Лучше расскажу о функционале: Вот допустим прозрачный layout на пик1. Есть куча всяких приколюх типа Arduino. Но самое главное это DS Plugin SDK, благодаря которому можно писать плагины на java, расширяющие возможности droidscript. DS позволяет писать приложения быстро и без мозгоебок. Если нужно в полевых условиях собрать кастомный статусбар, калькулятор, камеру, илм что другое, то DS идеально подходит. А сейчас функционал большой. Это и работа с терминалом, и UI слабо, но есть html, опять же- прозрачные лэйауты, и работа с файловой системой, очень многое реализованно Не хватает только кастомного layout для нотификаций.
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, не дайте себя обмануть.
Можно ли доверять ресурсам, которые лежат в @android и быть уверенным, что анимации @android:anim/fade_in и @android:anim/fade_out будут везде одинаковые?
>>1117417 Сейчас пытаюсь решить второе практическое задание. 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
>>1117420 100% до этого задания у тебя был пример для deep погружения. Видимо здесь асинтаски нужно юзать. Ну юзай, создаешь класс, где будешь разбирать жсон по косточкам, потом берешь асин таск, подключаешься к нету, если запрос заебись (на скидку, вроде 200) то берешь инпутстрим - расчехляешь и что-то там еще делаешь. Ну и ui обновляешь.
С SQLite не работал, поэтому ничего не могу сказать, да и там тоже такого нет. У него есть другая репа https://github.com/laramartin/android_weather но здесь юзаются технологии чуть повыше, не думаю что сгодится, но если на абстрактном уровне разобрать что да как, то можно и понять, как он с SQLite работает.
Я не претендую на роль шарящего, но чуть больше усилий можно приложить и на чтение чужого кода, можно еще на гите искать репы по ключевым технологиям и сравнивать что да как. После окончания залей на гит и я посмотрю, как ты реализовал это.
>>1117407 Олимпиадники же. Это как VK (впрочем писалось всё теми же людьми) https://github.com/vk-com/kphp-kdb . Чисто визуально - сишный неподдерживаемый говнокод, но в своё время он отлично работал и очень быстро.
>>1117407 Есть мнение, что среди разработчиков есть такой подвид как 'хакеры'. Эти ребята не особо заботятся об архитектуре, правилах solid, тестировании. Они просто ебашат код и ебашут быстро, и если хакер хорош - то почти без багов. Проблема в том, что работать в команде они не могут, починить баги и разобраться в коде кроме них никто не может, и если хакир увольняется, разработка стопорться и бизнес ждут непростые времена. мимо, бывший 'хакир'
>>1117790 > лел, иди-ка ты нахуй, человек, пишущий весь функционал на 10к строк в одном классе Не прям весь. Но люблю организованность. Типа: var op_post=App.ReadThread(id).getIndex(0); Удобно же. Глобальные переменные нинужны.
>>1117795 Статик лишь приближенные имеет свойства глобальности. Иди джаву учи, что ты здесь забыл? Еще скажи, что есть передача по значению и по ссылке, маня.
>>1117801 та как бы года 4 ее знаю, лол. Причем тут передача по значение или ссылке, долбаеб? Анон сказал, что в джаве нет глобальных переменных, я ему привел пример, что есть и как они пишутся. Глобальная переменная - та, которая доступна в любой момент времени и с любого участка кода. public static идеально с этой задачей справляются. Так что иди-ка ты подучи джаву после сделанной домашки.
>>1117803 нет, это надо как раз для глобальных переменных. Чаще даже сюда клеят final , чтоб иметь глобальную константу. Также паблик статик при большом желании можно юзать с методами, которые тоже станут глобальными и юзабельными откуда угодно когда угодно.
>>1117832 Задавали здесь уже такой вопрос тредов 5 назад. ДА, ДА. Заебали. Вдобавок почитай еще стримы, лямбды и охуей от того, что джава 10 выходит вместе с var.
>>1117808 >Глобальная переменная - та, которая доступна в любой момент времени и с любого участка кода. public static идеально с этой задачей справляются. И перед тем как получить доступ до public static переменной, JVM загружает весь класс в память. Формально, до этого момента эта "глобальная" переменная недоступна.
Суп, антошки. Пилю приложение - библиотеку вебмок напизженных с двача. У меня есть ScrollView с кучей превьюшек этих самых вебмок. Проблема в том, что првеьюшки делаются очень медленно (а наполнение скролла запускается из onCreate, и приложение виснет), и я запихал их в AsyncTask https://pastebin.com/nsyyakCb. Теперь приложение грузится относительно быстро, но есть другая проблема - когда активка перерисовывается, превьюшки "мигают". Я так понял, это происходит из-за того, что при перерисовке у меня заново создаётся скролл, заново создаются изначально пустые ImageView, и потом только в них пихаются картинки. Как этого можно избежать? Нужно ли перепиливать саму логику создания и отображения превьюшек?
>>1118113 загрузка изображений через асинктаск для списка в андроиде - плохая идея, все прошли через такой баг, который у тебя. В обще решение таково: выкидывай нафиг асинк таск и забывай про него навсегда (я не тралю, асинк таск обоссали уже все, кто только можно, сам года 3 им уже не пользовался) , а для изображений и их адекватной загрузки - библиотеки Glide либо Picasso в помощь (первая лучше, но тут дело вкуса). И тогда тебе надо будет в адаптере лишь написать: Glide.with(context).load("ссылка на картинку").into(itemImageView);
>>1118128 Спасибо, анон, сейчас буду пробовать с глайдом. >в адаптере лишь написать Объясни, что ты имел в виду? Я адаптеры использовал только со спиннером дропдаун который, и не понимаю, как это здесь можно использовать. Я только начинаю разбираться в ведроиде и, возможно, по-индусски делаю отображение превьюшек вот тебе сам метод для общей картины, но учти, можешь блевануть с говнокода https://pastebin.com/7kd4ezHe.
>>1110463 (OP) Анон, а как работает DownloadManager? Это отдельный линукс-процесс, корой через IPC получает и обрабатывает запросы от приложений на загрузку или же это просто какая-то либа, которая создает дополнительные нужные потоки внутри приложения?
>>1118144 ну попробуй пикассо вместо глайда, у тебя в коде разница будет в одно слове только
>>1118143 >Объясни, что ты имел в виду? Я адаптеры использовал только со спиннером дропдаун который гугли RecyclerView + Adapter Android тебе достаточно инфы выдаст. Тамже ты столкнешься с такой вещью как ViewHolder. И во тв адаптере в методе onBindViewHolder у тебя и будет код типа GlidePicasso.with().load().into();
>>1118200 Ясно, спасибо вот блять, а я надеялся порезать трафик только для определенного PID процесса и надеялся, что больше никаким способом он не сможет пробиться к быстрому инторнету, но что-то придется делать и со всякими там DownloadManager-ами
>>1118233 >ну попробуй пикассо вместо глайда, Сначала нужно почитать тыщу туториалов по их различию, потом найти фреску - почитать еще про нее и наконец понять, что нужно юзать глайд для самого распр. случя.
Чёто вкатился в котлин, и проиграл с котлиношизиков в голос. Единственные профиты в сухом остатке - это датаклассы, вменяемые модификаторы, lateinit (сахар) и ебля с null (кроме бросков npe). С дженериками какая-то ебань, один сахар. С делегатами вообще запилили подобие рефлексии с providedelegate и ручным созданием проперти обьекта. Функции высшего порядка - нетестируемая параша. С аннотациями теперь нужно ебать мозги о том, куда @Inject сунется в байткоде. Код в библиотеках на котлине пишут нечитаемый.
>>1118113 Тоже делаю библиотеку с webm. Только помимо обычного выбора из списка имеем еще рандомный выбор видео из БД. Превью отображаю с помощью RecyclerView c Glide в адаптере. До этого использовал пикассо, но говорят, что он более не поддерживается разработчиками. Из минусов только большое количество методов в библиотеки, но в этом проекте хватит за глаза.
Кто хочет поупражняться в написании простой проги? Идея такая - есть любой текст, который загружается извне (например книга) и Курсор который постепенно закрашивает текст с определенным количеством символов в минуту (настраивается). Служит для чтения по памяти, т.е. читаешь вслух только закрашенный текст, а следующее слово или несколько запоминаешь. Позволит ускорить речь, повысить легкость говорения и развить краткосрочную память, что крайне будет полезно большинству здесь присутствующих и мне. Также будет полезно при изучении языков, можно выпустить на маркете. Если остались вопросы - пишите в телегу @MarkyWithNuts.
>>1117924 Синглтон - паттерн проектирования, юзается когда нужен 1 интсанс класса на всю апку, SP - механизм записи данных в андроиде, обычно туда сохраняют флажки, разные настройки етц.
>>1118281 прямо люто двачую. Сам уже месяца 2 как перекатился на котлин (ну как перекатился - на работе сказали, чтоб все андроид разрабы на него переходили в скором времени, вот и пришлось учить и первые проекты уже на нем писать), тоже не заметил особо крутых преимуществ. Ну вернее, одна реально крутая вещь - это функции-расширения, ее в джаве не хватало. А так все, в принципе. Практически любая вещь, которая была в джаве в котлине переделана похожим образом просто с другим синтаксисом (либо в точности да наоборот лол, как наследования, кек). Смысла с этого всего 0. Выглядит как каргокульт, что мол кто-то сказал, что котлин крут, го все на него - и все ринулись. По факту, повторюсь, что там особо плюсов нет. Однако, с другой стороны, работая в сфере айти, надо быть готовым к таким вещам, что один язык будет вытеснять другой, одна среда разработки другую, будут появляться новые архитектуры и паттерны и т.д. Тут ничего не поделать. Зато можно перед остальными выебываться , что знаешь +1 язык и прибавку к зп за это выбивать у начальства) Такие дела.
>>1118621 Работающий анон, ответь еще на такие вопросы: 1) ОС, под которой разрабатываешь 2) IDE 3) Где отлаживаешь 4) Как тестируете 5) Полезные фишки, если они есть
Хочу написать демку на андроеде для своей БД.
Заодно, если есть приложение Мой Перекресток если нет, поставь, во сколько оценил бы его разработку?
>>1118636 1) лично я на винде 10, но это не принципиально - можно семерку, можно убунту, можно хоть на маке, лол 2) Android Studio, я не представляю, что сейчас вменяемый андроид-разработчик может кодить в другой среде какой-либо 3)эмуляторы + тестовые девайсы + мой личный девайс иногда 4) если ты про юнит тесты, то их не пишем, толку никакого. Тестим сами руками 5) их настолько много и из стольких областей, что ты наверное уточнил бы, что именно тебе нужно)
приложуху ту что ты кинул я бы часов на 600 оценивал, но это я так в ней полазил секунд 40, может там еще подводные есть свои камни и часы могут прибавиться
Кто нибудь юзал апишки гитлаба? Хоть убей не могу найти гайд по какой юрле кидать реквесты, где достать ключ и т.д. Ткните носом, пожалуйста https://docs.gitlab.com/ce/README.html
>>1118792 >отобразить содержимое базы данных при нажатии на кнопку Ну ты же не просто так будешь отображать содержимое в каких-нибудь виджетах аля текствью. Прилепи recyclerView и присобач в фрагмент и открывай.
Здравствуйте. У меня пара непоняток с Firebase Cloud Messaging Я хочу программно отправлять 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 для веб-приложения). Без него я даже пробовать и экспериментировать не могу. Или мне нужно завести отдельное приложение для рассылки? (Как мне это сделать, если да?) Помогите с ключом
¡Привет, /pr/! Хочу написать приложение для изучения языка, наподобие дуолинги, однако без необходимости постоянного подключения к интернету. Jav'у я совсем не знаю, но знаком с императивным программированием на уровне чуть выше "Привет, мир", что такое токены ответить не смогу. и у меня есть желание. Я справляюсь с олимпиадными задачками, но совсем не представляю, как написать самую простую полезную программу. ¿Смогу ли я сделать задуманное после изучения jav'ы? ¿И каким образом?
Хочу сделать себе на ведро просмотрщик смешных картинок с одного сайта без нормального апи. Что мне взять за основу? Голую джаву ебать не хочу, в qml нет нормальных виджетов для картинок, xamarin нет опыта, в cordova.js какая-то хуита с зумом тут мои познания в разработке под андроид кончились
>>1120343 >Фу блядь, фу нахуй. джуномакака порвалась? Нет, вот давай ты, поясни в чем толк от того, чтоб писать тесты? Сириусли, бестолковый процесс, отнимающий нужное время. Вот есть у тебя класс с 2-3 методами, допустим, и ты в тесте тупо прописывает вызов (раз так 10-20) этих методов в различной комбинации входящих параметров. Охуеть, а нахера? Вменяемый разраб и так где нужно поставит проверки на null и прочую обработку. А какие-либо серьезные баги выплывают не во время таких тестов, а уже во время того как пользуются реальные люди и эти баги достаются из того же крашлитикса, как вариант. Опытным путем уже убедились, что быстрее будет разослать приложуху 5-7 своим людям с разными девайсами (внутри конторы это делаем), ручками по экранам пройтись и норм.
>>1120726 Я не он, но вот мое обоснование. Пилишь ты такой систему по ТЗ. Реализовал кучу методов, но в тесты запихал только те, которые описаны в ТЗ как ключевые. Внедрил систему. Прошло джва года. Половина методов не использовалась с момента внедрения. И тут тебя спрашивают - а система-то по ТЗ может звонить Путину. Может ведь? Если у тебя тестов нет, ты скажешь - да хз, надо опять тестовый стенд запускать и проверять. А если есть - ты их запускаешь и отвечаешь - нихера, Путин телефон поменял похоже, надо новый в конфиг прописывать. Это реальный кейс из энторпрайз системы. С тех пор я делаю проверку всех методов фасада, в любой момент можно все их проверить на работоспособность. С апи та же херня. Если у тебя нет тестов, ты не можешь пользователей апи посылать нахер, придется каждый раз их жалобы проверять.
>>1120758 Апи двачую, ленивые бекендщики отправляют всякую дичь. Реальная история поле email, на тестовых юзерах все было ок. Сделали рассылку, пошли люди - invalid json token expected string but was boolean. Вот как это вообще можно объяснить.
>>1120726 > Опытным путем уже убедились, что быстрее будет разослать приложуху 5-7 своим людям с разными девайсами (внутри конторы это делаем), ручками по экранам пройтись и норм. Конечно быстрее. А если и ручками не проходиться, то ещё быстрее. А качество стоит времени и денег. Разработка двумя макаки по хуяк-хуяк методологии, конечно, проще и легче.
Уважаемые, я студентка, стою в самом начале пути (хочу придти к созданию приложений), учу потихоньку java, книжки читаю и тд и тп. Оч прошу толковых ребят запилить свои стори мне в телегу (от самого начала: как пришла мысль, с чего начали, что и где делали, как долго это всё продолжалось, где брали мотивацию и тд) Если ты начинающий, то напиши мне тоже, пожалуйста - будем вместе учиться, делиться опытом) Это мне очень поможет, верю, что здесь есть хорошие люди <3 @SorryImBusy
>>1121831 >Третий месяц копаюсь в чужом говне и пытаюсь это отрефакторить. Поясни по подробней пожалуйста. Там RX есть-то хоть? А то я пока не подавал заявку на работу.
Что случилось с Андроид Студией? Почему лагать перестала, я уже собирался новый ноут покупать, решил тестануть 500-й раз, и вдруг, внезапно все летает, прям как вижуал студио. Правда эмулятор зависает, но я, нищая студентота, могу потерпеть.
>>1121985 Да что расказывать, кинули на проект на котором я фикшу баги, рефакторю чужой быдлокод, рх нету но зато есть асинктаски из которых во все щели льеться память.
Аноны, думаю вы знаете, что на андроиде есть такое приложение "Гугл Переводчик". Так вот, как можно передать этому приложению строку для перевода? "Яндекс API" нехочу пользоваться, потому если послать ему одно слово, то он вернёт лишь один вариант перевода, а если ввести слово в приложение "Гугл переводчик", то тогда в приложение отобразятся и другие варианты перевода.
>>1122406 Ну это так не рабоатет. Ты хочешь именно открыть его со своим словом, или получить результаты? Тогда стоит воспользоваться гугловским апи для перевода.
>>1122426 Я хочу что бы моя программа исполнила вместо меня функцию ввода нужного слова/фразу в приложение. Как я бы написал это слово с клавы, так и программа как то должна как то ввести эти слова в приложение. API гугла вроде как платный, да, и скорее всего, он будет возвращать только один вариант перевода, как API яндекса. Да и кроме того, придётся самому писать интерфейс для приложения.
>>1122654 Бля, ну хули тебе не понятно? Мне нужно написать код, который каким либо образом прикажет приложению "Гугл переводчик" перевести заданный тексткоторый хранится, к примеру, в буфере обмена. Что бы не я сам, печатая, вводил текст в приложение, а что бы программа ввела его за меня.
>>1122662 так а что тебе мешает просто руками его скопировать и вставить туда? темболее если уже в буффере обмена есть текст, то даже копировать не надо, а только вставить
>>1122724 Потому что нужно пальцами для этого тыкать, а я хочу что бы оно само было! А-в-т-о-м-а-т-и-ч-е-с-к-и. Кроме того, руками эти действия отнимают приличное количество времени: сначала нужно удалить предыдущий текст, потом удерживать палец на экране, пока наконец то не появится кнопка "Вставить", потом, после вставки, ещё и нажать кнопку "Перевести". И так по кругу, раз за разом. Я хочу, что бы вся эта лишняя работа проделывалась сама.
>>1122359 Как восхитительно, да еще и асинтаски! Я бы поебался с ними. Я аж заурчал.
>>1122815 Ну так делай, что тут непонятного-то. В твоем описанном представлении я представил это как: Выделяешь нужный текст - отправить как - твое приложение - автоматически вставляется - переводиться. Если в буфере обмена - чекай его - добавь в TabLayout две кнопки - вставка, очистка. Только тебе все равно придется выделять текст для копирования. Или я не так понял?А вообще, пиздуй делать.
>>1122815 >: сначала нужно удалить предыдущий текст, потом удерживать палец на экране, пока наконец то не появится кнопка "Вставить", потом, после вставки, ещё и нажать кнопку "Перевести". Так захуярь эти действия в одну кнопку. Петух.
>>1122817 >>1122819 Ёбнулись что ли? Я не хочу делать своё приложение для перевода, я хочу, что бы приложение Гуглп для перевода автоматически переводила текст, находящийся в буфере обмена.
>>1122857 >Я не хочу делать своё приложение для перевода Нахуй ты сюда тогда пришел? >я хочу, Хоти. > Гуглп для перевода автоматически переводила текст, находящийся в буфере обмена. Если там нет такой функции, то тебе придется делать СВОЕ приложение. Но ты не хочешь делать свое приложение. Расходимся. Он нас тролленькает.
>>1122859 У меня и так последняя, нет там нихуя. >>1122871 >Нахуй ты сюда тогда пришел? Я не хочу делать своё приложение для перевода. Я хочу сделать приложение, которое передаст приложению Гугла нужный текст для перевода. >Он нас тролленькает Успокойся блядь, никто вас не троллит. Я всего лишь спросил, можно ли написать такой код. Похоже что нет.
>>1122908 Я не копирую текст сам. Он поступает с компьютера сразу на буфер обмена телефона. >>1123004 Как? Дай хоть какое-то направление, в котором нужно двигаться. Я не знаю, как можно повлиять на действия чужого приложения.
>>1123042 > Я не копирую текст сам. Он поступает с компьютера сразу на буфер обмена телефона. Какая разница? Гуглтранслейт детектит изменения в буфере. Похер каким образом скопиповал.
>>1123042 >Как? Дай хоть какое-то направление Блять, берешь пишешь в гугол взаимодействие с буфером обмена. Андройд буфер обмена. Заебал блять. Ты ебанутый что ли? Вот скажи, ты действительно ебанутый или ты троллишь нас? Блять, что сложного-то забить информацию в гугол? В твоей маленькой голове промелькнет вопрос - почему этот чувак не дает мне НАПРАВЛЕНИЯ? Да потому что я блять не хочу гуглить вместо тебя, а если я начну гуглить - я знаю, что в 90% случаев я найду ЭТУ информацию. Пиздуй нахуй. Вот тебе еще бонус от меня. https://stackoverflow.com/questions/tagged/android?mixed=1
Память доходит до 130МБ. Приложение состоит из видео плеера и ресайклер вью с превьюшками. Данные подгружаются из сети, пагинация списка. Загружена одна страница из 3-6 элементов. Это нормально или нужно разбираться куда столько памяти летит?
>>1123516 Создал ресайклвью адаптер. Объявил VIEW_TYPE_ITEM(контент) = 0 и VIEW_TYPE_FOOTER = 1(последний элемент в списке, чтобы поместить прогресс бар). Так же запилил два холдера в соответствии с вышеуказанными элементами. А дальше проверка на наличие данных. Если у нас имеется следующая страница, то показывает FOOTER появляется индикация загрузки в конце списка. Данные загрузились, футер исчез через специальный метод. Вообще это решение есть на стэковерфлоу. Так что ничего нового не рассказал.
>>1123547 Осталось по такому же принципу запилить ошибку запроса. Если запрос некорректен и серверу нечего прислать в замен, отображаем VIEW_TYPE_ERROR
>>1123547 А, ну понятно. В одном из репе китайской, я видел как чувак унаследовался от RecyclerView, переопределил onScrolled и onScrollStateChanged, добавил листенер, в хмл захуярил свой RecyclerView, ну и еще штучки захуярил. Мне показалось это интересным.
Нужно ли больше уделить внимание InputStream и подобным I/O? И дженерики на каком уровне достаточно знать? Я особо эти моменты и не встречал за полгода разработки.
>>1123449 а что там разбираться то? делаешь дамп памяти и смотришь на что тратится столько, если на что-то нужное, то норм, если какая-то левая хуйня жрет - то не норм, дело нескольких минут
Анон, хочу вкатиться в разработку под Android, а именно портировать одно приложение и одну игру. Мне просто нужно изучить джаву? А как же зоопарк моделей, фрагментация по экранам и все такое?
Что анон думает по поводу флаттер? Сам я думаю играться с ним буду через год-два и то, когда найду работу, но очень интересно ваше мнение. Вроде внушает симпатию, чем тот же какой-то там хамарин.
>>1125184 Если ты будешь использовать движок, то он со многим справится и на деле это не такая большая проблема если сильно не завязываться на некоторые возможности.
>>1125196 Фигня, что-то уровня реакт нейтив, но на не взлетевшем дарте. Если гугл таки сможет похоронить ведро и выкатить нам новую ось, причем так что программы будут совместимы и эта ось, фуксия/андромеда/хуегугловеда будет на флаттере то тогда конечно да, но пока ничего серьйзного.
>>1125196 >хипстерская ссанина на скриптах внушает больше доверия чем индустриального уровня хамарин, огромная инфраструктура с# и поддержка майкрософт ты болен иди учи хамарин
>>1125240 > индустриального уровня хамарин На котором до сих пор ни одного крупного приложения не написано? > огромная инфраструктура с# Давайте сделаем как в джаве, но только по-другому. Алсо, систему сборки так и не завезли? > и поддержка майкрософт Ты считаешь это плюсом?
>>1125344 >На котором до сих пор ни одного крупного приложения не написано? Не аргумент
>систему сборки так и не завезли? Какую еще систему сборки, что ты несешь?
>Ты считаешь это плюсом? А ты считаешь это минусом? Библиотека от Васяна лучше технологии от самой авторитетной и заслуженной ИТ-компании?
Тебе просто нужно понять, что простота = беднота. хелло ворлды, да, пишутся на таком скриптовом говне просто. Хелло ворлды. Ты охуеешь писать что-то большое. В хамарин ты можешь нашлепать формочек, скочать библиотек из 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;
Бля, узнал про Android Asynchronous Http Client. Вроде то что нужно. Ещё бы объединить все методы в один класс (допустим User), а в активити только результат выводить.
Расскажите вкратце, что нужно знать, если я хочу добавить в приложение проверку на подключение к интернету. Пока знаю, что там для WiFi и SIM интернета разные команды исполняются.
>>1126001 >>1126046 Запрос делать к сервису, с которого тяну данные или google.com? Мне интересно другое, нежели простой вывод предупреждения об отсутствии коннекта. Как сделать, чтобы выполнение программы приостановилось, не вызвались методы и прочие действия? Как делается у профессиональных разработчиков это?
>>1126245 А что тут громозкого-то? Юзни котлин. Все равно здесь лучше не сделаешь. Можешь свитч ебнуть, только вот зачем? Лучше бы полезным делом занялся.
>>1126238 >Запрос делать к сервису, с которого тяну данные или google.com? Лучше конечно к своему, тебе он интересней. >Как сделать, чтобы выполнение программы приостановилось, не вызвались методы и прочие действия? Так не делается, особенно на ведре.
Когда я листаю RecyclerView с методом onScrolled у меня первые 5 элементов уничтожаются, а следующие 5 появляются из базы данных. Как сделать, чтобы 5 приклеивались к самым первым данным?
Последний раз пользовался андроидом 4 года назад. Использую исключительно продукцию гейпла. На учебе учим сейчас джаву. Появилась идея вкатиться таким образом в андроид. Вопрос: помешает мне это как-то при разработке или достаточно будет гайдлайнов по ui почитать от гугла и все пойдет как по маслу?
>>1126980 Какая к черту каша? Та джава что ты будешь "учить" к ведру будет иметь весьма посредственное отношение. Вот нахуй тебе как пользователю айоси писать под ведро?
>>1126718 Спасибо, переписал. По началу не мог догнать, что везде нужно импорт библиотек на support.v4.app.Fragment поставить. Еще при данном подходе прочитал, что нужно делать статический конструктор для фрагмента. Правильно ли это? Или сейчас по другому профессионалы делают?
Собираюсь одновременно позадротить android разработку и ios-разработку Сам овер5 лет во фронт-енде Насколько велик шанс, что я делаю все правильно и буду нарасхват?
>>1127229 > Сам овер5 лет во фронт-енде Это уже не лечится. > Насколько велик шанс, что я делаю все правильно и буду нарасхват? Стремится к нулю. Иди лучше в js-тред.
>>1127228 Не уверен, что профессионалы сейчас вообще используют фрагменты, но да, так делать правильно. Вообще это шаблон для создания фрагментов в самой студии. Ты сохранял эти данные в активити, а надо было их передавать самому фрагменту через аргументы, как ты теперь и сделал, так что ты всё правильно понял.
Следующий вопрос по поводу выделенных элементов с пика. Студия говорит, что данные методы могут вызывать исключение NullPointerException. Если почитать подсказку, то там говорится об аннотации @NonNull, значит что значение не может быть null. С одной стороны все работает как нужно, без крэшей, но с другой, хотелось бы знать, что в дальнейшем у меня не возникнет проблем с работой программы. Что делать в такой ситуации?
>>1127358 Пока решил на этом варианте остановиться. Библиотека Graphql имеет поддержку из коробки RxJava, что позволяет за пять минут переписать. В данном виде асинхронность запросов поддерживается, менять необходимости нет.
Поясните на пальцах за setHasFixedSize. Правильно ли я понял, что если Recyclerview занимает весь экран, то без разницы установлено это свойство или нет?
>>1127551 > Какая вероятность что я стану пидоромиосразработчиком Это тоже самое, как выебать девушку трапа нажравшись. Не узнаешь, пока не попробуешь. И, если ты бы выебал ту секретную девушку, считал бы себя пидором? Это обязательный вопрос.
>>1127349 Странно это говорить, особенно глядя на говнокод со скриншота, но ты видимо всё-таки развиваешься. В предыдущих тредах тебя сразу нахуй посылали, а тут даже на настоящие ответы у кого-то терпения хватает.
>>1117407 Ты просто мудак ебучий, который не может даже догнать на какой хуй это всё нужно и, видимо, не слышал про оптимизацию. Твой уровень — хеллоуворлд калькуляторы.
> Хочу вкатиться в разработку под 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