Мир твоему смартфону, анон. Прежде чем задавать свой вопрос, прочитай:
FAQ
> Хочу вкатиться в разработку под Android! Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде. После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение. В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> IDE и инструменты? Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).
> Не хочу писать на Java! - Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
> Есть что-то кроме нативных приложений? - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. - 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. И хотя бы оно готовое приложение.
>>886024 > В 24-ом ведре завезли уже, раньше только ретролямбда/jack. На уровне виртуальной машины новые инструкции? Тогда хорошо, через 5 лет может будет пользоваться. Впрочем, я о подобном не слышал. Так что только retrolambda остаётся. А джек, когда я им пользовался в последний раз, был вообще неюзабелен, не знаю точно, как сейчас.
public void onUpgrade(SQLiteDatabase db, int oldV, int newV) db.execSQL("DROP TABLE IF NOT EXISTS ") onCreate(db);
Еще в отладчике пишет что где-то у меня в базе утечка, но я в душе не ебу где её закрывать. И вообще прочитал что сейчас андроид такой крутой, что ему похуй на эти утечки. Но вот, то что надо переустанавливать приложение что-бы появилась инфа из базы, вот это реально заебует.
>>886057 если ты про структурные изменения бд, то скорее всегда в super конструктора не передаешь новую версию. На утечки похуй если у тебя например курсор остаеться незакрытыми или бд или пока ты не для прода пишешь
Сап, ананасы, долго и тщательно копал интернеты на тему того, как сделать dual-pane без костылей только на фрагментах (да-да, master/detail flow в оф гайдах считаю мерзким), сделал свой велосипед. Можете посоветовать, как бы обойти постоянные executePendingTransactions() ? https://gitlab.com/i.komarov/multipane-fragmentmanager/tree/master
>>886179 Да, сейчас сделаю простенький sample, пока что не уверен работает ли там сохранение состояния правильно, или нет. (состояния отдельных фрагментов соответственно)
>>886179 Да, полностью рабочая версия готова, два дня, огромное тепловыделение сами-знаете-откуда, низкая производительность, но оно работает, и аналогов нет! Если кто-то поможет прооптимизировать - буду очень признателен. Если найдете баги - тоже прошу написать :)
>>886383 Всё хуйня, переделывай. Зачем ты хранишь SQLiteDatabase в хелпере? Зачем у тебя там методы чтения записи. Читай документацию, как с бд работают на ведре.
>>885914 (OP) Аноны, у меня есть CollapsingToolbarLayout и NestedScrollView. Так вот, когда я докручиваю до конца, то нет всего содержимого, которое должно быть, оно как бы находится под navigation bar'ом, но когда я переворачиваю в ленд скейп (navigation bar становится сбоку, а не снизу), то происходит то же самое. Всё работает нормально если добавить layout_marginBottom="?actionBarSize". Но щас мне пришлость добавить в NestedScrollView TextView, которое надо раскрывать, и когда я вызываю textView.setMaxLines(...) появляется этот самый отступ снизу, как быть? А, ещё при вызове setMaxLines срабатывает OffsetChangedListener у AppBarLayout.
Антуаны суть такова, хочу сохранить проэкт. У меня есть неполный проэкт, как бы превью, хочу выложить его в маркет, а потом дополнить проэкт и выложить его уже в маркет за определенную сумму. Но старый проэкт который бесплатный, я бы тоже хотел обновлять когда и обновляю платный проэкт. Как бы это сделать? В студии нету же save as. По логике я бы его просто сохранил под другим именем. Но нет же, это мне придется создавать новый проэкт и всё переносить туда. Может есть способ полегче?
Котаны, где почитать как сделать авторизацию для REST api? У меня регистрация на сайте через google Oauth2, но понадобилось еще сделать api для мобильного приложения.
Есть программно создаваемые textview. Нужно чтобы удалялся вью "смахиванием". Гуглю уже тучу времени, но разобраться не могу. Можно ли сделать полный аналог Оnclick? То есть написать метод, который получал бы на вход вью и при действии "смахивание" выполнил бы удаление? В примерах, которые мне попадались, только что-то вроде "если смахнули вправо, печатаем "вправо", а действий над конкретным вью - нет.
Все описанное в доках гугла это то, как делают и нужно делать? Используют ли вообще те примеры, что в доках в реальной жизни или это просто для новичков?
Как в андроиде реализуется аналог UITableView секции из iOS? Пока что вижу полный отсос андроида в этом плане. Допустим у меня есть куча динамических секций, с разным количеством колонок в каждой, как бы такое реализовали?
>>887580 Ios-дебил, тебя в гугле забанили? Вбиваешь sectioned recyclerview, а лучше сразу fast adapter, и смотришь код на гитабе. Ручками реализуется, Вася - списочком, или хэшмапиком, и его анализом. Количество генерируемых вьюх тоже регулируется. Android - это программирование, а не кодинг (в отличии от ios, и всякой backend-web-параши), там можно и нужно придумывать свои решения
Когда через glide пихаешь пикчу в imageview он ведь меняет подгоняет её размеры под размеры imageview? Ну то есть, не будет ли это сжирать память, если в маленький imageview пихать большую пикчу? Или может сам imageview это делает?
Парни, кто-нибудь ловил интересности при сложении/вычитании ебанных чисел формата double/float?При нажатии на кнопку определенную число должно увеличиваться на 0.1. Но оно увеличивается на 0.100...052343 или вроде того.И спустя 5-6 кликов оно увеличится уже не на 0.1, а на 0.2, в связи с этими накоплениями. Несколько часов убил, так и не понял, в чем дело. В итоге организовал всё через костыли. К слову, проект не мой, дали доделать, но код весь прошерстил и ничего особенного не обнаружил.
>>888024 Окей, распишу подробней. Есть объект, в нем есть поле double. Происходит нажатие на кнопку,я беру значение поля,прибавляю 0.1d и получившееся отображаю на экран
Анон, какие карты ты используешь?Яндекс мап кит или Гугл?Как ощущения, на чем остановился?Алсо, сам пользую яндекс, но невозможность посмотреть исходный код и баги на некоторых телефонах как-то подзаебывают.
>>888019 Твоя проблема тут >число должно увеличиваться на 0.1 Запомни, юный небесный странник, нецелочисленная арифметика крайне неточна, при каждой подобной операции происходит накопление ошибок, посему нельзя использовать результат подобного присваивания для последующих операций, погрешность нужно регулярно сбрасывать, разрывая такие замкнутые круги по переменным, как у тебя. Тащемто это широкоизвестный прием работы с такой арифметикой.
Собственно у тебя и выхода нет: Либо сбрасываешь ошибку, либо организуешь целочисленные вычесления, либо используешь тяжелую длинную арифметику - она от ошибок не избавит, просто отодвинет их на чуть более поздний срок.
Обычно стараются юзать целочисленную арифметику и приведения чисел, потому что с нецелочисленной арифметикой легко обосраться, и трудно обнаружить этот обосрамс - достаточно сделать одну ошибку, забыть сбросить ошибку например, и все, результат загублен.
Господа, а есть ли standalone UI пререндер, cpu/gpu/memory мониторы? Студия конечно хорошо и тд. Но мне она надоела, вот нахуя она качает к каждому проекту gradle, когда у меня он стоит в системе? Посему хочу ради эксперимента попробовать поработать не в студии, а в каком нибудь саблайме.
>>888293 > вот нахуя она качает к каждому проекту gradle Так там кэширование есть библиотек и самого gradle
>Посему хочу ради эксперимента попробовать поработать не в студии, а в каком нибудь саблайме. Тоже пытаюсь ради прикола работать в Atom. Поставил плагин на gradle build + подсветка синтаксиса kotlin - работать можно, но сложно без авто ипортов
>>888390 >А что эклипс не попробуете? Охуенная тема жи. На эклипсе ADT сидел пару лет до появления Android Studio. С каждым релизом он становился тяжелее и глючнее, точно на него не вернусь.
Вообще чистой IDEA CE хватает за глаза, Atom так побаловаться пока не завезут автокомлит Kotlin.
>>885914 (OP) Аноны, нахуй нужен JobScheduler? Правильно ли я понял, что это замена BroadcastReceiver, которые регаются в манифесте на системные интенты и потом стартуют сервис?
>>888035 гугол, там есть нужная мне кластеризация и прочий пересчет координат и проекций. Но ужасно напрягает, что нет такого гибкого балуна, как в яндексе. Приходится костыли городить
Господа, кто юзал BackupAgent? У меня надо после автобекапа тереть токен, и пару таблиц в БД. В какой момент вообще вызываются методы бэкап агента относительно аппликейшена (до/после onCreate)? Или вы вообще все вырубаете автобекап в манифесте?
>>888984 В том то и дело. У меня надо бекапить несколько табличек бд, но в то же время стоит тереть другие таблички, где внешние ключи висят на первых (т.е., вынести в отдельную базку - неочень вариант).
Посоны, трудно вкатиться на upwork имея полгода опыта за плечами?Умею в английский,фрагменты,еблю с RecyclerView,карты,REST API... и так далее и тому подобное.Или же толпы индусов не оставят шанса?
Андроны, есть проэкт с более 20-тью активи, хотел запилить разные версии с рекламой и без. Создал в проэкте две папки free, paid, прописал в градле флэворы. И начал переносить свой проэкт из мэина, путем копи паста в папку paid , и что я блять вижу, пакеты не находит, импортированные библиотеки тоже. Ебанная R ни один элемент не видит. Это блять надо 20 с хуем активити править ебанные названия пакетов, добавлять приставку .paid, .free. нахуй оно надо? Почему всё так хуево сделано?
>>888035 google, ибо все наши проекты любезные ios-ники переводят на еблугл. Течет как сучка при виде меня (нет), дырявая что пиздец, оперативы жрет туевы хучи. Не используй никогда, анон, умоляю тебя
>>889824 >>889833 >>889835 Спасибо Ананасы, сейчас буду разбирать. И еще манифест должен быть в каждой папке, разной версии программы ? Я вот перенес с папки main всё в папку paid, и в free. Но при компиляции, выдает ошибку что нету манифеста в папке Main. Нахуя оно вообще туда лезет если в build variant я выбираю Paid ?
Как вылавливать ошибки в датабайндинге? В ошибках пишет только что пакет/символ не найден и если одна ошибка то все классы сгенерированные будут не найдены. Из предупреждений только просьба использовать метод референс, заменить "." на ":".
>>889950 Удобно, нет разрывающих пукан findViewById и необходимости хранить во фрагменте какую-нибудь хуйню типа адаптера доя ресайклера, просто setAdapter и все ну и тд.
>>889950 Просто блять коллега взял код из другой ветки, а там была видать запушена хуйня какая-то, и теперь проект не собирается, я как вышестоящий должен разобраться чо за хуйню они там устроили и какого хуя в обход меня, но это другая история. Вот две ошибки нашел с помощью варнингов, а дальше непонятно.
Хм, такой вопрос, если использовать RxBinding, то в каком слое MVP ( ну понятное дело в данном случае View или Presenter ) и в каком виде нужно содержать Observer-ы. Тут в принципе понятно, что нужно как-то содержать их в презентере, но не мутить же овер дохуя анонимок, али мутить ?
>>889970 нормальные люди и так не хранят во фрагменте адаптер для ресайклера, у меня например универсальный йоба-адаптер для всех случаев жизни, работающий на рефлексии и rx-стероидах, который может все
>>889852 Ну типа нет, давай объясню так, чтобы ты понял: приходит человек на работу программистов и говорит о своих навыках: "Ну я печатать быстро умею, еще могу вам пинг-понг-бонг на жабе написать". Как думаешь, что скажут ? То, что человек знает азы и так понятно, если он работать идет
>>890060 Ой, смотрите, любитель бойлерплейта нашелся. Адаптер более чем соответствует SRP, он выполняет четко поставленную задачу. То, что он поддерживает доп фичи - уже дело разработчика, то, что он универсальный - тоже вопрос любви к бойлерплейту
>>890009 Ну ты монстр ответов, однако, вопрос был в другом. Но по факту я предполагаю что нужно что-нибудь с комбинацией Observable делать, ибо их уже 6 штук и это только первый день я посидел над проектом и это без сети и прочего, only view
Переписывал недавно старый проект, задался вопросом. В проекте однотипные поля, но их количество и тип всегда разный. На сраный экран с 4 et в til, ушло около 200 строк, с учетом валидаций, отображения ошибок сохранения состояний при пересоздании и тд. Офк мвп\мввм и подобное не предлагать, там локики кот наплакал, и количество кода оно не уменьшит, так вот к чему я, задался вопросом, какого хуя? Юзал bk, d2, support, ip. Соответственно, выходит либо пишешь на нативе + либы, либо пилишь собственный фреймворк. Но это всегда по боку выходит, кто-нибудь уже задумывался об этом?
Нужен человек который сможет завтра в 12-13 мск помочь с тестом по классам джава и немного андроид студии telegram: @ozzmo Насчет оплаты договоримся Примеры заданий прилагаю Тест рассчитан на 1.5 часа
Прохожу курс на юдасити и там надо добавлять тесты для приложения, ну я добавил, все проходится нормально. Но обнаружил что если запускаю тесты на своем телефоне с 19 апи то прогоняются 10 тестов, а запускаю на эмуляторе с апи 25, то прогоняются 6 тестов. Откуда эта разница? Почему так? Поясните пожалуйста.
>>891114 Пробовал немного, сам язык очень няшный, но я как-то не слышал, что под андроид он особо используется. Для градла находил плагин для поддержки скалы, но там официально поддерживаются только 22 и 23 версии апи и build tools соотвественно.
Такая проблема с RecyclerView - если долго листать вниз, затем начать листать наверх, то айтемы, изображения из которых уже выгрузились из кэша, начинают резко "выскакивать" сверху, вместо плавной прокрутки. Это возможно как-то пофиксить?
>>892220 Скорее всего прогварда немножко ужал, это норма и хорошо, но не забывай проверить не сломалось ли что-то, у меня так дефолтная сериализация gsonа слетела.
>>892291 Он по умолчанию выключен, и судя по его вопросу он его не включал. Релизная конфигурация же не содержит отладочных данных, поэтому она всегда немного меньше.
блять, не могу никак создать проект на скала через IDE. Вроде как Android Studio не работает, а через Intellij я не могу. Есть какой-нибудь блять гайд, что бы это все запилить?
>>892868 картинка блокировки экрана? Спроси на xda - тут тебе не помогут с этим точно. Ну или на 4pda. тут мамкины программисты сидят, они телефон то прошить не могут
>>892869 > тут мамкины программисты сидят, они телефон то прошить не могут Прикладное программирование не имеет никакого отношения к желанию трахать ось изнутри, ковырять прошивки и совершать прочие непотребства.
Как можно сконвертировать динамичную XML в HashMap? Перепробовал кучу либ, но у них почему то примеры заточены под конкретные классы, я понятия не имею какие у меня поля будут, мне нужно вне зависимости от них упаковать их в Map. В данный момент остановился на xStream, но он тоже отказывается паковать мои xml.
>>893170 Я читал это сегодня, там хардкод. Я например не знаю какой у меня будет root, а в примере его тупо затачивают под конкретный xml. C другим root парсер падает с эксепшном.
>>893184 Делаю сериализатор XML для httpclientа. Бля с json все охуенно, вне зависимости от того что прийдет от серва, он отлично парсится в HashMap, а тут пиздец, уже вторые сутки с этим ебучим XML ебусь.
>>893245 >>893246 Можно какой-нибудь бест практисес пример? Просто я в дальнейшем хочу свой httpclient засунуть в отдельный package и использовать его в других проектах, у меня есть на данный момент клиент использующий okhttp. Я при создании запроса задаю сериализатор, который будет использоваться для парсинга ответа сервера, JSONSerializer и XMLSerializer, получается что если для XML нужно пилить объекты приемники, я не могу его унифицировать. Бля это пиздец какой-то.
>>893255 Почему не получится, получится, только ты определись тебе Map<String, String> или что-то по сложней. >>893259 POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray.
> POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray. Я просто не совсем понимаю, как это будет выглядеть. У меня в данный момент схема такая.
ну и в JSONSerializer у меня имплементится @Override public Map<String, Object> deserialize(String response) { // тут я определяю что мне пришло // определяю JSONObject или JSONArray // с помощью библиотечки Gson // конверчу это в Map и возвращаю на выход }
А вот как провернуть подобное с XML, ума не приложу. И получается если использовать POJO, это немного поломает общую схему?
>>893280 Не поломает, а сделает лучше, сейчас клиенту прийдется разгребать всякое говно с Object, что же там такое интересное лежит. А так указываешь маппер при вызове, или вешаешь на целый класс маппер, короче нахуй ты придумываешь велосипед?
Что за хуйню вы здесь обсуждаете? Retrofit c GSON или SimpleXML адаптером используйте, а не изобретайте велосипеды с JSONObject и прочим говном, имбецилы необучаемые, блять
Привет, андроидо аноны, помогите решить следующую проблему: необходимо сделать вьюшку (не диалог) для выбора необходимой даты (datePicker / calendarView), но чтоб при этом выбирать можно было только из ОГРАНИЧЕННОГО списка дат, а остальные дизейблились. Ну и само собой возможные для выбора подсвечивались одним цветов, а остальные другим. Пересмотрел все, что есть в вышеуказанных datePicker и calendarView , там нужного не нашел, максимум что можно сделать - выбор даты ОТ одной и ДО другой, но это не то. Поискал несколько сторонних либ, там по функционалу тоже самое. Что подскажите делать в такой ситуации? Наследника от calendarView? Какие методы тогда переопределять? Или может есть библиотека, где такой функционал присутствует? Чтоб для выбора давалось именно ограниченное кол-во дней а остальные нельзя было выбрать.
>>893304 По ходу тебе нужно писать кастомный дейтпикер. Есть сайтец, емнип называется android arsenal или что то в этом роде, там всякие кастомные контролы в свободном доступе, попробуй там поискать.
Антон умеет в xamarin? Поможет? Трабла в следующем: приложение должно дергать методы из библиотеки C, она откомпилирована отдельно. Dllimport и все такое. Собираю, запускаю. При выполнении пишет, мол нету библы, что логично ибо в apk её нет. В проекте то же. Пока проверял под винной - все работало, либу dll кидал рядом с экзешником а вот под ведром хз. По каким путям нужно положить этот гребаный .so и куда, что б его увидело? Или как то в проект запихать, чтоб оно само? Ньюфаг, кодинг - хобби.
Господа, подскажите библиотеку с PreferenceCompat, где работает клик на вложенный PrefererenceScreen, и есть материал десигн? Перепробовал несколько с первых ссылок в гугле, ни на одной не работает.
>>893493 >>893488 Ты из бэ чтоли, что так переживаешь, что тебе аж за 3(!!!!) часа не ответили? Придет котлиноеб, может ответит, у него есть опыт в этом говне.
>>893443 В папку libs, удивительно. Не ебу где она в ксамариновском проекте, но в обычном джавовском она в корне модуля. Почему бы тебе не погугли подключение наивных библиотек в ксамарине, ты явно не первый.
>>893512 Это от раздражения, споткнулся на фигне. Пардоньте. >>893512 В сети вся инфа на случай, если библа компилится из исходников тут же. Или я дурак.
хранить презентер в конфиг персистент компоненте даггера. в активити/вью инжектится презентер, в базовой активити/вью в бандл сохраняется айди на onSaveInstanceState. по этому айди в статический мап слхраняется компонент даггера со всеми нужными зависимостями (презентер этц)
Хей .дроиды. Шлю уведомление через notificationManager, отсрачиваю отправку Handler postDelayed. Эта ебань работает, но если перекатываюсь на рил девайс, то уведомление не отправляется (надо отправлять от пары часов до суток). Видимо срабатывает какое-то энергосбережение. Куда копать? Просить права(как?) или будить приложение через событие типа будильника(как?). Кто побеждал такое?
>>893848 Господь должен заставлять таких людей писать юнит тесты. Но вот чего я не понимаю - что сложного вынести константу? С ними же потом самим проще это говно редактировать?
>>894023 Потому что чем хуже тем лучше. Потому что ненавидят заказчиков, погонщиков, совесельников и тебя лично - и с удовольствием бы тебя удавил, например.
Анан, а скажи, есть в android sdk средства для безвозвратного и, желательно, достаточно низкоуровневого удаления файлов (вот прям совсем нахуй, но желательно на жабе)? И насколько секурно их тереть с помощью file.delete()? Просто у Ведра еще галлереи всякие и, насколько я понимаю, внутрисистемная БД для связи файлов с этими самыми галереями/плеерами и не хочется (из соображений секурности), чтобы файл заремувил, а линк на него повис где-то в системе.
>>894030 Почему учитель в школе за гораздо меньшую зп не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету? Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов?
>>894023 >>894030 Долбоебы просто они, там не только в константу, а в типизированный POJO выносить надо. И все будет норм, и текст явно не хардкодить нужно.
>>894041 >не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету? >не Какие мы оптимисты. >Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов? Потому что соси хуй, быдло
Снова всем привет, я вот этот анон >>893304 . После трех дней кодинга, поисков и матюков могу точно сказать, что для решения проблемы с календарем вот этот вот вариант https://github.com/prolificinteractive/material-calendarview однозначно самый лучший и удобный. Там при помощи DayViewDecorator можно просто чудеса с календарем творить) Так что для кастомизации календаря очень удобная штука!
Подскажите ньюфагу, как сделать, чтобы если TextView ограничен одной строкой, но текста в нем больше, чем на одну строку, в конце добавлялись три точки?
сап, котаны. Тут такая тема, либо я ебанутый, либо рантайм пермишены геолокации теперь закрывают приложение на 6ке. Тестил на самсунге и эмуляторе. Че за говно, раньше же такого не было
Апельсинки, а есть у гугула какая-нибудь статистика отражающая процент наличия датчиков (освещения, высоты, и т.д) на общее количество устройств на рынке?
Аноны, подскажите по такому вопросу. Есть задача разработать приложение которое будет работать в kiosk mode, т.е. отключить возможности свернуть или закрыть приложение. Версия Android < 5, поэтому просто использовать screen pinning не выйдет. Основная часть задачи была решена добавлением двух прозрачных view поверх system & nav панелей. Но при открытии клавиатуры, вместе с ней появляется новый navBar, который по видимому является частью ее окна. Каким образом можно либо получить ссылку на его WindowManager, чтобы добавить вьюху в него так же через метод addView(View view, ViewGroup.LayoutParams params), либо просто скрыть это бар?
Провожу сборку, есть app1.app1-signed.apk, но не в эмуляторе ни на ведрофоне он даже запускаться не хочет. Ведь простая же программа с элементами, где обосрался?
аноны, какое простенькое приложение написать для портфолио? Что бы с нетворком и бэкжндом. Бэкэнда нет, взять бы готовый, типа гитхаба.. Но приложение под гитхаб скучно
Что сейчас модно использовать для многопоточки в больших с взрослых проектах? Вроде сейчас в тренде Rx, но он не имеет привязки к жизненному циклу, robospice вроде уже почти не используют, опять же из-за того что все переехали на Rx или по другой причине? Посмотрел небольшую библиотеку Chronos, она умеет и лайвцикл и кэш, у кого-то есть продолжительный опыт использования оной? В общем поделитесь опытом.
Каковы шансы того что переменная продолжает хранить ссылку на объект даже после выхода из приложения? Из раза в раз ситуация повторяется. И инициализации не могу найти.
>>885914 (OP) Анон, помоги. Есть ли годные ресурсы/литература по бэкенду приложений? В частности, интересует клиент-серверная архитектура и прочее. Сам нашел только гайды а-ля СДЕЛАЙ МЫШКОЙ СЕРВЕР ДЛЯ ВЫВОДА ХЕЛЛОВОРЛД НА СВОЙ ГОВНОСАЙТ или невнятные статьи на хабре типа "Пишем бэкенд, сначала делаем так some code. а потом так some code" и так далее. Подскажи, а?
>>897135 тут уж позволю себе немножко подкорректировать вас: если говорится о мобильном бэке, то идет большой акцент на то, что у мобилы оперативы то да и мощности проца поменьше, чем у компа, и инет может быть послабже, а потому максимум работы должно осуществляться на сервере
>>896840 глянь гайд спринга, например, там примитивненько описано как собственные rest-сервисы создавать, дальше уже будет от чего плясать по крайней мере
>>897153 Не работал ни с чем где для мобилы делались послабления. Ничего особо тяжелого и не встречал, но считаю что если может сайт, то может и мобилка, решает кеширование. >>897155 По пуш делать - раз плюнуть. Не знаю как с apns, но с fcm/gcm добавить токенов юзеру, удалить токен юзеру, а дальше ПРОСТЕЙШИЕ запросы к гуглу отправить json, ничего сверхвыделяющегося там нет.
Котаны, кто-нибудь юзал API Google Sheets? (com.google.apis:google-api-services-sheets:v4-rev38-1.22.0) Есть ли там методы для атомарного обновления значений в ячейках? Вариант с несколькими запросами - не вариант. Один запрос не пройдет и пиши пропало.
>>885914 (OP) кто-нибудь, подскажите, пожалуйста, как делать заметки. если у меня их фиксированное количество и все они изначально перед глазами, на фоне картинка.
Сап, котаны, ебусь с траблой уже наверное часика три. Суть - есть дохуя жирный rx2-чейн. Но эта сука прерывает эмиттинг итемов где-то. Нашел-таки где (см пик). Схуяли такое может происходить ? все происходит на io.
>>897764 Таки нашел ошибку, внутри анонимки в .map шло выкидывание NPE, который по каким-то неведомым мне причинам нихуя не отлавливался нигде. Таки даешь дебаг всего, путем оборачивания в try-catch :D
>>898038 годных нет, двустороннего binding-а на моей памяти еще не появилось ( разве что за последние полгода, когда я уже забил и на MVP вкатился ). А почему именно MVVM ?
>>898047 Не знаю. Привык уже к нему. Не вижу лучшей альтернативы. Вкатился в него, когда хуярил на WPF. Потом перешел с WPF на ангуляр, где он тоже юзается. Писать руками код, который обновляет вьюху - считаю излишней работой.
>>898042 Посоветуй материала по связке MVVM + WPF, а то в интернете миллион статей на заре 8.1 где упор идёт на мобилы и WinRT а нормального что почитать и нету.
>>898049 Это не .NET, здесь MVVM бал не правит. Пока попробуешь довести хоть одну клиент-серверку нормальную на MVVM до продакшна - сотню раз возненавидишь себя за такое решение
Котаны, у меня есть Observable, в которой некий запрос к API. В случае провала вызывается subscriber.onError(Throwable e). Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации?
1) Передать в конструктор Throwable(context.getString(R.string.cat)); 2) Заготовить исключений на все случаи жизни и оттопырить в презентере это всё instanceof'ами?
>>898303 Вариант с несколькими классами исключений выглядит самый правильный. Далее через instanceof определяешь какая ошибка произошла и подгружаешь сообщение откуда захочется.
>>898303 >Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации? "Все есть объект" Ты должен инкапсулировать всю логику преобразования ошибки в UI сообщение в отдельном объекте.
Если лень создавать кучу классов Throwable, можешь юзать один под каждый тип ошибок и параметризовать его enum'ами.
Есть у меня Model, Presenter и View. 1. Запустил загрузку данных с сайта 2. Перевернул смартфон 3. View уничтожено, асинхронный запрос завершился, а результат негде отображать. Где мне его сохранить, чтобы отобразить как только будет создано View? В презентере?
>>898412 Я решаю проблему с помощью презентера с кэшем, который переживает смены конфига в лоадере. Как только допилю и оформлю на гит - закину сюда ссылочку. Будет полайтовее популярный фреймворков
>>898431 >>898570 Господа, имхо, в большинстве случаев это - код ради кода. Почему бы просто не кэшировать сами запросы во время выполнения, а потом сохранять отписываться от них в onPause/подписываться в onResume?
>>898303 Я делаю так: 1) Из модели летит Exception 2) В презентере через instanceof определяю, что за экзепшн. 3) В зависимости от этого, во вью показывается то, или иное сообщение (в снэкбаре/в диалоге/в отдельном сообщении - это решает презентер)
Пригласили на собеседование (джуном). Одна из топовых фирм города. Пригласила рекрутерша по джунам, думаю они набирают на обучение всяких бомжей типа меня. К чему быть готовым? Что могут спрашивать? Как все выглядит? Я просто впервые на собеседование иду, очень волнуюсь, что им рассказывать? Есть говеный курсач с бд и рестом, стоит показывать? Говеный в смысле дизайна, но я думаю за выходные исправить чтобы красиво выглядело. Короче расскажите к чему быть готовым, о чем почитать и мб какие советы будут.
>>899059 Заходишь в фирму, тебе кидают полотенце под ноги. Ты должен его перешагнуть, но не наступить. Сразу же громко говоришь "Вечер в хату, мужики!". После этого к тебе должен подойти смотрящий и спросить, кто ты по жизни. Ответь, что простой мужик, рабочий. Если предложат в сесть в тазик, отвечай "я сяду, только если ты мне в хуй дунешь".
Кто-то спер мои радиобаттоны. На скрине должны быть слева от каждого айтема, там щас обводка. Сам ее добавил что бы понять где они сука. Не выводятся бладж тупо. Причем в xml ничо не менял. Взаимодействие между адаптером и фрагментом менял, но блин, для вывода радиобаттонов нихрена же и не надо, только в getView адаптера возвращать layout с гребанным радиобаттоном. И текст-вьюхи работают же у айтема.
Причем если обводку не добавить - клик не проходит. Добавишь - работает, но где сука радиобатонны.
Мож кто подскажет? Код не выкладываю, ибо там все в говно выводами дебажными перемазано.
>>899341 ну хуй знает, по любому в какой нибудь хуйне опиздаволосился очевидной. И вообще юзай ресайклер, листвью лагать начинает с большим количеством итемов
>>899440 Да тож понимаю, только третий день нихуя найти не могу. Как начал пытаться оптимизировать архитектуру, перелопачивая взаимодействие между презентером, фрагментом и адаптером так и вылезло это говно. В чем-то очевидном, но блять мы же даже никак радиобатон не добавлем, если он уже в xml-ине находится.
Взял чисто кусок xml с радиобатонном и вставил от балды в другой список. Все работает, хоть и логики никакой нет.
Вобщем походу это... Буду всем говорить что никаких радиобатоннов там и не было никогда. И вы, если чо, ничего не знаете.
>>899444 >никаких радиобатоннов Сами уволились вчера? А если дизайн посмотрят? Не пиши AppCompat<ClassName>, ClassName автоматом на него заменится при компиляции, только если конструктор вызываешь надо компатовский класс писать. Удали все элементы из вьюхи кроме радио. И потом добавляй
>>899496 Удалил - без изменений. Говорю ж. Не в xml-ине проблема. Ее я не трогал.
Скажу что они нарушали минималистичный дизайн стиль и их пришлось убрать. А вообще это мой соло проект, я его на показать в кампанию делаю и как диплом. Никто не контролирует особо.
Я хочу чтобы по строке получался нужный enum, то есть String yobaString = "oche_maliy_yoba" YobaType currentYobaType = YobaType.valueOf(yobaString); // В итоге сurrentYobaType должно стать YobaType.OCHE_MALIY_YOBA, но вместо этого я ловлю эксепшн, мол нет такой константы. Как это сделать правильно, а то хуярить кучу if else вообще не вариант
>>899506 Я надеюсь, ты запилил себе дженерик обертку <T extends View> T findViewById(view, id) для этого? Иначе тогда да, как даун. >>899518 Внутри BF еще и рефлекшон в довесок идет.
Гайс. Недавно вкатился в Андроид. Уровень ПРЕДжуниор. Данные храню в обычном SQLite, но недавно услышал, что все опытные погромисты юзают некие сторонние библиотеки или какие-то заменители стандартного SQlite. Поясните. И обязательно хорошо сначала разбираться в основах sqlite прежде чем переходить на некие заменители
>>899773 Зависит от того что хочешь, большинство ОРМ и библиотек работают все с тем же SQLite, есть Realm, можно тащить с приложением свой бинарник sqlite, но тогда нужно еще кучу кода тянуть, как телеграм.
>>899773 Надо хорошо знать реляционную модель данных, нормализацию до 3 формы, понимать принципы построения запросов. Дрочить чистый sqlite, уже имея опыт с реляционными субд, не обязательно, можно хоть сразу орм использовать. Главное, просто не быть тупой макакой.
Поставил на visual studio 2015 community edition xamarin, создаю проект и пытаюсь запустить. Мне выдает сообщение There were deployment errors. Continue? Никаких ворнингов и ошибок не выводится. Что делать?
Сап, котаны, с вами снова больной на голову студентишка-разраб, который пилит SDK под полностью реактивную поддержку MS Graph API. С последнего поста (пару тредов назад) объем проектика увеличился в несколько раз, количество отработанных запросов теперь в районе 100-120, но это охватило где-то 8-10% графа. Пока что вроде как все идет нормально, но чувствую, что при росте в 10 то раз (до этого такие еба-проджекты не писал) могу обосраться от путаницы. Что посоветуете, чтобы максимально жестко и правильно структурировать и абстрагировать весь этот пиздец ? Есть ли какие-то паттерны проектирования сдк-шек или йоба-либ ? Заранее спасибки, надеюсь, с вашей помощью отмучаюсь поскорее :)
>>900206 p.s. Сейчас придерживаюсь создания фабрики апишек с помощью ретрофита и надстройки в виде прокси над ней в виде синглтон-менеджера, который не позволяет говнишко всякое пихать в запросы. И еще такой вопрос, стоит ли создавать DAO и проксю над локальной БД, в которую можно положить любые данные или же пусть пользователи сами ебстутся ? Пока что только база аккаунтов лежит под покровом прокси-менеджера
Сталкивался кто с проблемой, что если подключить к приложению сервисы гугл плей, то на девайсах с апи 16 при запуске приложения будет предлагать их обновить? Как это можно решить?
>>900641 я поржал :) Зачем, если есть готовые тулзы для удобной работы с бд ? Что ты там хранить собрался, что тебе не подходит ни зеленый, ни сах арный ?
>>900620 >Можно поизвращаться же с jdbc драйвером. Да, андроид поддерживает jdbc, только у него нет изкоробочного драйвера для его sqlite. Сам не юзал правда, благо ormlite позволяет подключаться на прямую.
>>900611 > Dalvik ~~ JVM Уже давно ART, но нихуя они не эквивалентны.
> ORM который работает только на ведре - это хреновая орм StorIO — не ORM.
> Ради чего мы пишем на котлинах и грувях? Лично мы не пишем, ибо не долбоёбы. > максимум которого можно протестировать локально Наверное, ты имеешь в виду на JVM. Как в этом твои котлины/груви/скалы помогут? Особого смысла писать юнит-тесты для БД так, чтобы они запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится.
Ну или ебись с jdbc, хули. На SO были чуваки, которые даже Hibernate на ведре использовали.
>>900618 Примерно так и пишу. С небольшим количеством вспомогательных функций и precompiled statements. Особого синтаксического сахара тут ожидать не стоит, ибо это не ORM.
А кто-то пробовал обновлять таблицы при смене схемы в greendao3, при использовании SQLCipher ? У меня идет крит с сообшением о том, что таблицы не найдены, но тащемта они есть :)
>>900671 >Уже давно ART, но нихуя они не эквивалентны. Няшь, вот скажи мне, а что это меняет? Тем более сейчас, когда андроид укатился на open jdk.
>запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится. С ormlite как-то получалось. Просто логику надо абстрагировать от платформенного уровня.
Я делаю запрос к серверу в IntentService. Получаю при помощи LocalBroadcast результат. Но куда мне положить результат на случай, если юзер свернет приложение, чтобы показать ему его, когда он его развернет? Мне нужно всего лишь показать и закрыть ProgressDialog.
>>899961 Самый известный баг, унаследованный от петушков из JetBrains. Вешай отдельные дополнительные, отдельные клавиши на русскую и английскую раскладки
>>899773 God Tier Realm. Большой и тяжеловесный - но быстрый, доделанный и простой в использовании.
Good tier Native sqlite. Много кода для поддержки - но если нужно пилить нестандартную логику запросов, джоины, всякие нестандартные команды к базе и т.д.
Mid tier StorIO. Если тебе не нужно чего-то нетривиального, в то же время не нужно огромной ORM - самое то. Убогая архитектура на ресолверах прилагается.
Shit tier GreenDAO, ORMLite и им подобное говно. Тормоза, рефлексия и прочее не нужны
Стоит городить retrofit с сущностями и хуйней-малафьей, если в приложении используется один маленький параметр, который берется из одного единственного сетевого запроса к рест сервису?
>>901145 >Стоит городить retrofit с сущностями Стоит это кусок кода абстрагировать и вынести в отдельную сущность. Дальше пишешь тривиальную реализацию и покрываешь ее тестами.
Потом уже, если логика запроса усложнится, то заменишь ее на ретрофит.
Народ, подскажите плиз, нужно сохранить пароль и логин в приложении, чтобы потом достать их. Насколько я понял в SharedPreferences хранить не безопасно, что лучше всего использовать из андроидовских возможностей? Желательно без ебли с шифрованием и добавлением хуевой горы кустарных библиотек в gradle dependencies.
>>901186 >сохранить пароль и логин в приложении Это безопасно никак не делается. Все что есть на устройстве можно спизидть. Как вариант = AccountManager
>>901186 можешь попробовать через жопу шифровать побитовыми сдвигами и прочей хуйней. Из-за того что это чистой воды ебланство ни кто не ломанет, базарю
>>901202 Это слишком задрочно и не стоит того. Просто блять по ТЗ нужно впихивать логин и пароль в поля, если юзер логинился, а Гугл рекомендует хранить только токен и не сохранять credentials и пиздец.
Делаю что-то типо курсоуказателя, нужна помощь в выборе фигуры для отрисовки "пропаханного".
В общем, суть: нужно за двигающимся авто/трактором отрисовывать путь/маршрут заданной ширины (точность нужна побольше, чем просто ебануть polyline.width() в пикселях и смотреть как ширина меняется при зуме).
В начале реализовал так: делаю полигон, который перерисовывается, когда добавляется новая точка, получилось вроде как надо(пик 1). Однако хуета в том, что когда "разворачиваешься" полигон пересекает сам себя и ломается нахуй! Просто в конченную ебалу, нихуя не похожую на няшный полигончик. (пик 2)
Пробовал строить полигон каждые новые две точки, получается крипотно и вообще хуета. (пик 3).
В общем хотелось получить стандартными средствами что-то по типу 4го пика, где полигон отрисовывается замкнутым и достаточно плавным.
Есть ли какие-то еще возможности? Думал еще через GroundOverlay ебануть, но там только прямоугольники, а в Polyline ширину только в пикселях задавать. (Собственно для полигона тоже, но я сам рассчитываю его координаты и влияю на точность)
>>901395 Я вполне вежливо задал вопрос, тут есть те кто перекатился с iOS на Android, следовательно могут на него ответить. Поэтому когда мне отвечают > А мы ебем что у тебя там делает plist? в таком духе, я отвечаю взаимностью.
>>901401 plist это просто xml файл, так что у тебя два выбора 1) сгенерить java классы из твоего plist и сериализовать/десеризовать их 2) загружать сырой plist и работать с ним как с DOM и делать выборки через xpath
если ты хочешь просто хранить иерархические данные, лучше заюзать shared preferences
>>901783 >>901786 Программаны, я здесь залетный. Не совсем вас понимаю, можно обьяснить для даунов? Нужно чтобы скроблер и аудио плеер вместе запускались, вот.
>>901797 Найди названия пакетов скроблера и аудиоплеера, там будет что-то типа com.yoballc.audioplayer или com.zaloopa.scrobler. А в своем приложении стартуешь их через интент, как я написал выше. Или ты спрашиваешь не как программист а как пользователь андроида?
>>901798 > Или ты спрашиваешь не как программист а как пользователь андроида? 2ое , скроблер перестал запускаться автоматически при старте воспроизведения . Теперь всегда нужно запускать сперва плеер, а затем скроблер, ну или в другом порядке, похуй. Но главное чтобы скроблер был запущен и висел в процессах. Можно конечно никогда его не отключать, но я хотел найти более эргономичный вариант.
>>901825 Гугли сглаживание poliyne, вроде немало примеров было. Насколько я помню там нужно подшаманить с MitterCap или что-то в этом роде и тогда углы будут не острые а скругленные.
Обмазался анимированными переходами между активититеми, что из api 21, периодически выходит пикрелейтед экран после нажатия кнопки назад. При каких условиях он появляется - так и не понял, при равных условиях он может и появиться, а может и нет. В чем может быть дело?
>>901885 Балуюсь, но в бэкстэк ничего не добавлял. по крайней мере осознано Такая же проблема происходит и при возвращении из простеньких активити, не имеющих фрагментов.
Котаны, вопрос не столько по конкретной технической реализации, а концептуальный. Вот я услышал что (якобы) эти все мессенджеры используют TCP для связи с бекэндом. Есть какое-то годное чтиво на эту тему? Клиенты поддерживают постоянное соединение - тоесть бекэнд ебется с миллионами действующих подключений? Или там устанавливается соеденение только на время передачи сообщения? И тогда получается что клиент на телефоне должен работать как сервер - принимать подключение от бекэнда когда приходит сообщение. Как постоянно открытое соединение (если такое используют) влияет на батарею - при условии что оно не используется, просто поддержание соединения в ожидании сообщений от бекэнда?
Антуаны, кого рода приложение могут забанить? Хочу написать игру связанную с диктаторами, но боюсь что такое не пропустят, а аккаунт забанят. Игра на мой взгляд не пропагандирует ничего, а лишь "освящает" некоторые интересные аспекты политики этих людей.
>>902160 Цель сделать именно на ведро, рискну все таки. Просто начитался про удаление приложений из за всякой хуеты, а потом еще про баны аккаунтов из за обращений в сапорт, чтобы эти приложение вернули. Складывается впечатление что гуглу вообще похую на людей, которым сервис обязан своей аудиторией.
Хочу сделать в своем приложении список некоей хрени и группы. Типа как в аське с контактами: группа друзей, группа коллег, группа родственников, а внизу - список оставшихся контактов, которые вне группы. Выпадающий список я уже написал. По идее, это будет ListView выпадающих списков, сразу под которыми ListView не попавших в группы. И так, чтобы первый список заполонял экран, а потом, когда долистается, вытягивался второй список. Ну ты понел, анон Когда я запихнул LinearLayout с двумя списками в ScrollView, стали неадекватно вести себя адаптеры. Убрал ScrollView - стал отображаться только первый список, и тот до середины экрана.
Что мне делать, анон? Что-то вроде CoordinatorLayout осваивать?
>>902129 Кто как, ВКашка до сих пор на лонг полинге живет, другие на сокетах. Можешь телегу глянуть. Ну так себе влияет на батарею, но гугл заставляет всех пользоваться GCM, так что нормально.
>>902220 Не до конца понял, что тебе нужно. Из того что понял могу сказать следующее: пили ресайклер в который клади итемы expandableRecycler(загугли это). Заполняй эти expandableRecycler'ы своими контактами. По умолчанию поставь, чтоб первый итем в корневом ресайлере был развернут, а когда до 2ого долистаешь(onBind поидее вызовется, ну или погугли, как определить, какой итем на экране) сворачивай первый и разворачивай 2ой
>>901874 Бамп вопросу. Опытным путем установил, что такое происходит только при переходах типа Slide и Explode. При переходе Fade все работает как надо. Фрагментов в бэкстэке нет, это тоже проверил.
>>902371 http://pastebin.com/p2QRXhRk Получается следующее - после нескольких заходов во вторую активити из первой, по возвращению в первую ловится пикрелейтед. Собственно пустой экран цвета android:windowBackground из темы приложения. Количество возвращений до пустого экрана в среднем от 2 до 5, от чего оно зависит, проследить не смог. При одинаковых условиях оно было разным. При этом, основная активити таки продолжает работать, проверил onResume() - он выполняется несмотря на пустой экран. Если повернуть девайс или еще как-нибудь перезапустить активити - все отобразиться корректно. Все запросы в гугле, какие смог придумать, в итоге ничем не помогли. Может, это какая-то проблема отрисовки или типо того, но я уже не знаю, как к ней подступиться. Мин апи 21, тема приложения наследуется от Theme.AppCompat.Light.DarkActionBar
>>901874 Я ещё не дошёл до этого. Но могу посоветовать попробовать кастомную либу для переходов. Видел статью на медиуме, где описывались кучи багов в Transitions Api
>>902466 Нашел только кастомные либы для совместимости с api<15. Пробовал, кстати, делать через overridePendingTransition, эффект такой же, как и через средства апи 21.
>>902467 >Ебаный говнокод. Тебе не стыдно? Нет, я не погромист. >А по теме, вангую у тебя батернайф чудит Проверил сделанный до перехода на баттернайф коммит, такое же дерьмо.
>>902259 Мне нужно, чтобы половина списка была expandableRecycler, а половина - простые контакты. Я пока слабо знаком с RecyclerView, и не уверен, что можно справиться одним списком
>>902523 Можно справиться одним списком. Я делал свой exandablerecyclerview с двойной вложенностью (группы в группах). Сиди да пихай себе notifyItemRangeInserted, или еще на порядок проще через DiffUtil.
Такой вопрос, у меня есть динамическое количество вьюх, которые могут быть или унаследованны либо от LinearLayout либо от RelativeLayout, я их собираю в ArrayList, а затем перебираю for(ViewGroup group : listOfViews)
В этом цикле я хочу запихнуть их все в один ViewGroup, который потом в свою очередь запихнуть в Activity, как это лучше всего сделать?
Сап, аноны. Прочитал первую главу книги Шилдта (полное руководство) и решил вкатиться в андроид. Чекнул вакансии на hh и чет приохуел. 194 вакансии в дс2, часть из которых это шарпеи с ксамарином, а другая часть ебанные курьеры, которым пишут в требованиях андроид смартфон для gps. Реально ли вообще вкатиться во всю эту шнягу совсем без опыта в разработке офк перед этим написав приложеньку и выложить ее в гугл плей?
В связи с некорректной работой loader-ов внутри не-retain фрагментов при повороте (они, сука, персоздаются, гляди), решил подумать в сторону сохранения презентеров в сервисе. Насколько это ебнутая затея? Главное условие - презентер должен жить когда View претерпевает изменения конфигурации, уходит в бэкграунд и пр. пр.
>>904953 И глядя с текущей "высоты" вниз, на свой путь, настоятельно рекомендую сначала досконально изучить java core курс (Эккеля хватит с некоторыми небольшими урывками типа concurrency, references, jmm) дабы подходя в ведру заниматься не дрочем жабы, а непосредственно ведром
>>911192 Не понимаю. Я вообще код писать не умел, когда начинал писать под андроид, но всё легко изучил. Можно делать так, как хочется, правильного варианта нет.
А может кто-то расписать, как организовывать работу с кэшированием, например, новостей, когда идет проверка по timeStamp-у наличия новых итемов ? То есть как, например, лимитировать количество записей в базе до определенного объема кэша, как правильнее организовать подгрузку только лишь нужных итемов, вымещение новыми старых из базы ? А то сделать нужно, да и хотелось бы, но вот прикинув так в уме количество аспектов, понял, что грабли выебут мой лоб, если не последует помощи со стороны
Мир твоему смартфону, анон. Прежде чем задавать свой вопрос, прочитай:
FAQ
> Хочу вкатиться в разработку под Android!
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> IDE и инструменты?
Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).
> Мануалы?
- Официальная документация: 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. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
> Есть что-то кроме нативных приложений?
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия.
- 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/873367.html