Это копия, сохраненная 8 февраля 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
> Хочу вкатиться в разработку под Android! С чего начать?
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.
Предыдущий тред: https://arhivach.org/thread/293352/
http://developer.alexanderklimov.ru/android/views/edittext.php
А еще, лучше займись джавой на месяца два три, и научись гуглить. Когда разберешься с потоками, коллекциями, классами, построишь интерполяционный многочлен лагранжа, тогда можешь привыкать к андройду. Не лезь, сука.
Не я решаю. Мне в конце августа нужно проект на android studio сдать и потом начнем изучать C++ %%тоже хз нахуя андроид. Я посмотрел, больше половины функций из андройда реализованы другими командами.
тоже хз нахуя андроид. Я посмотрел, больше половины функций из андройда реализованы другими командами. фикс*
необязательно (даже желательно не) фриланс, а просто чтобы разрешили не ходить в офис и самому планировать своё время.
судя по вакансиям с возможностью работать из дома на hh, это больше характерно для веба с фронтэндом (к которым у меня душа сейчас не лежит), но вы что скажете?
ты хуйнёй какой-то страдаешь. никого не ебёт что тебе нужно. твой запрос уровня "нихуя не хочу разбираться зделайте плс".
разбей на подзадачи и реши их с помощью мозгов и гугла:
- считай из EditText строку, преобразуй её в массив хуй знает как конкретно тебе надо.
- сделай какуюто хуйню с этим массивом, требуемую тебе по задаче, ибо нахуя тогда в массив бы было преобразовывать?
- массив преобразуй назад в строку и выведи в TextView.
но я, сказать честно, подозреваю что тебе и массив нахуй не всрался, и андроид нахуй не всрался, и с++ потом, и вообще айти с такими подходами к решению задач.
у меня со временем само так вышло (не фриланс) но для джавы и андроида это скорее повезло имхо. на фрилансе больше шансов.
но - врядли с нуля за год вкатишься до приличного уровня андроидп, а на фуллтайм удаленку с годом опыта тебе врядли доверят.
короче, шансы малы, но они есть если не сольёшься раньше.
ясно, спасибо.
java-треда в разделе я не вижу, спрошу у тебя — бесплатные лекции по джаве на ютубе от головача 2013-14 годов, это норм? для лекций 2013 года срок давности 5 лет скоро будет. нужно искать что-то более свежее на английском?
Да с выводом массива в textview я уже разобрался и
>нихуя не хочу разбираться зделайте плс
С этим я не согласен. Я хотел сделать программу которая строит графики, но я не могу понять как в моей библиотеке присваивать данные массива точкам на графике поэтому и просил гайд чтобы разобраться
Нормально. и хёд фёст 2012 года тоже нормально. Может потом после фёста скачать полное руководство - там и лямбы и чего только нет или украсть 9 издание, оно недавно вышло на англ.
Еще здесь лежит https://github.com/pafnat/golovachcourses.com но я пока не копался в этом.
>нихуя не хочу разбираться зделайте плс
>С этим я не согласен.
Ой блять, давай рассказывай. Захочешь - задрочишь сам и прощерстишь весь интернет.
нормас, спасибо
Я смотрю ты любишь покормить.
Как учиться material design, пасаны? Вот есть набор гайдлайнов, окей, круто. А вот как их применять, какие элементы для лэйаутов использовать, как это все соотносить с темами/стилями?
Где про это вот все почитать можно?
Хуя себе мертвая платформа
А если бы twitter был написан на xamarin, все бы побежали скачивать visual studio?
Алсо, почему-таки xamarin не популярен? Мне кажется есть в этом какое-то луддитство. Xamarin слишком охуенен, т.к. с ним становятся не нужны отдельные команды по разработке для каждой платформы. Программисты боятся что станут не нужны
> Алсо, почему-таки xamarin не популярен?
Потому что говно.
> Xamarin слишком охуенен
А ты говноед.
>ко-ко
Ну и чем это отличается от написанного мной?
Без xamarin разработка приложений дороже - выгода программистам. Эдакая цеховая солидарность
>Которые СОДЕРЖАТ языкнейм
>Имеется 10 конкурирующих ЯП
>Мы сделаем охуенный ЯП который заменит все
>Имеется 11 конкурирующих яп.
Ахахахахахахахаза бугага ыыыыыы лол ржунимагу))))))00
если брать настолько жирные приложения - там можно найти любое мыслимое хайповое говно/технологию/язык. с таким же успехом на пикче можно написать там же Top apps that contain Javascript или C++.
лучше покажи список, который не contains а полностью написан на сабже.
Показал тебе за щеку. Проверяй.
Серьёзно думаешь, что кто-то будет переписывать готовое приложение на котлине? Полностью написанные на нем приложения только начинают появляться. А в топе приложений (именно о нем речь на пикче) новые приложения появляются в лучшем случае раз в квартал.
Хочешь не из топа? Открывай гитхаб и смотри, тонны их.
>Серьёзно думаешь, что кто-то будет переписывать готовое приложение на котлине?
не поверишь, но в как раз именно в больших конторах регулярно таким говном маются, переписывая значительные части на новый фреймворк-нейм. не аргумент.
а так-то никого не ебёт на чем написано, главное чтобы быстро и дёшево разрабатывалось. а вообще я в рот ебал андроид - похуй на каком ЯП, всёравно говно выйдет из-за того что на xml-лях всё основано.
> а вообще я в рот ебал андроид - похуй на каком ЯП, всёравно говно выйдет из-за того что на xml-лях всё основано.
Любитель перетаскивать кнопки мышкой по форме в треде. Все в Delphi.
ага в дельфи топчик было, ебаться после этого с разметкой иксемельки - днище.
олсо ты не прав вдвойне, т.к. гуглы преподнесли ConstraintLayout для тягания мышкой , который ожидаемо тоже говно на фоне дельфи. как охниебатьсяпрорыв в удобстве.
но я не о лайаутах в первую очередь, а манифестах, компонентах, стилях, селекторах, xml-дроваблов итп. лайауты из всего этого наиболее адекватная часть.
олсо, студия 3.0 наконецто созрела из беток, порадуемся.
Анончик, нетолсти, позязя.
>гуглы преподнесли ConstraintLayout для тягания мышкой
И я ебашу его в xmlе, так тупо быстрей. Пиздец как мне бомбит от Xcoda, там автолэйаут только мышкой, пиздец как же это долго.
XML показывай, а не скриншоты. Вагую у тебя высота стоит match_parent
И тебе студия даже подсказывает, что ты делаешь что-то не так: три жёлтых восклицательных знака
Бросай это дело и пиши в хмл. В первом линере в height зачем мач парент поставил? Ты троллить решил здесь?
Нет не сложно, все что ты описал тривиальные вещи.
Вся эта конструкция при скролле скрывает тулбар. Интересует вот что. Я проскроллил только половину тулбара, ушел в другой фрагмент, затем вернулся. Как мне сохранить стейт аппбара, чтобы он был так же наполовину проскролленным, как я его и оставил?
Есть приложение в котором пять разных карточек, у всех разные xml,но данные тянет с одного сайта. В одной из карточек есть поле EditText, получив цифру из которого нужно использовать как id для ссылки, чтобы получить ответ с сервера. Как реализовать это? Использовать буду Retrofit2.
Спасибо. Нашёл в описании либы:
A request URL can be updated dynamically using replacement blocks and parameters on the method. A replacement block is an alphanumeric string surrounded by { and }. A corresponding parameter must be annotated with @Path using the same string.
@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId);
У меня из идей только оставить в фрагменте FrameLayout и инфлэйтить туда отдельные лэйауты заглушек при необходимости. Какие подводные камни в этом случае?
Как происходит сборка DEX при формировании apk и что он в итоге содержит?
Я тут немного погуглил и вот что понял: сначала все .java файлы пропускаются через javac и на выходе получаем .class (который представляет собой байт-код JVM), затем при помощи dx все .class файлы собираются и транслируются в байт-код Dalvik.
Я все правильно поднял? Также меня интересует какие оптимизации производят javac и dx. Судя по вики javac особо ничего не оптимизирует и тупо делает проверки и раскрывает всякий синтаксический сахар, а dx тупо транслирует байт-код джавы в дальвик. В итоге DEX содержит практически оригинальный джавакод с минимальными изменениями?
>Я все правильно поднял?
Да.
Я сам нафаня, внутренностей dx/dexopt не знаю, но вот есть немного инфы.
dx можешь начать изучать отсюда
https://android.googlesource.com/platform/dalvik/+/master/dx/
Есть вот этот пост 11 года.
https://stackoverflow.com/questions/4912695/what-optimizations-can-i-expect-from-dalvik-and-the-android-toolchain
Есть какая-то документация по ART/Dalvik
https://source.android.com/devices/tech/dalvik/
Есть еще dexopt.
https://android.googlesource.com/platform/dalvik/+/master/docs/dexopt.html
В студию?
Качаешь/берешь у друга/находишь на помойке sdk.
Идешь в Andrid Studio -> Tools -> SDK Manager.
Указываешь путь к sdk.
Правда, хуй знает, где скачать по прямой ссылке чисто SDK, обычно используется SDK Manager. Но ты, наверное, можешь попросить кого-то скачать все нужные компоненты и тупо скопировать папке.
Это пиздец браток.
О, вот сорцами dx и правда надо обмазаться, спасибо.
Алсо обмазался тут apktool и глянул выхлоп в smali: там всё, даже оригинальные названия полей и переменных, раскрыты все циклы да if'ы, похоже ни javac ни dx нихуя толком и не делают.
proguard может немножко соптимизировать, но если ты попросишь. Есть утилита фейсбуковая, чето-то там делает. Но вообще главное в JIT, и на новых версиях при утсановке немного под устройстов оптимизирует ART.
Ну про odex и art я знаю, меня интересовало в каком виде жавакод лежит в apk и насколько полно его можно будет восстановить при условии что не используются всякие мокрописьки-обфускаторы.
Как оказалось, восстановить можно достаточно подробно.
Даже если proguard будет жостаточно просто восставноить, dexguard не сильно лучше. Остается нативный, но и там если захотят все достанут.
Ага, а всякие игори на хуюнити с логикой на шарпе вообще разбираются чуть ли не в оригинальный сорцы каким-нибудь dnSpy.
Есть один проект, в нём всё работает через интенты при старте активити и аргументы фрагментов.
Как правильнее переделать:
1) Пилить переходы через модель (кладём перед переходом - берём после)
2) Передавать между презентерами?
В идеале в модель данные которые надо куда-то передаватьи не попадают. То есть допустим ты ты находишься в профиле, по клику ты попадаешь на экран редактирования. Но данные ты не передаешь между экранами, у них либо общий презентер, либо у их презхентеров есть общие данные на уровне модели. Соответсвенно ничего никуда класть не надо, если оно уже где-то было, то оно и осталосьв модели.
Переход на другой экран осуществляет вьюха (интент, фрагмент-менеджер etc). Вьюха нового экрана получает входные данные (extras) и передает их презентеру.
Иди нахуй.
При том что у обоих есть rx поддержка, в сэмпл проекте SqlBrite используется Room. В чем разница между этими двумя либами? Какую мне использовать?
Этот вопрос тут каждые 40 постов задают. Читай тред.
Пошёл нахуй, клоун.
Всем привет!
Хочу писать на Ruby приложения для Android.
Есть ли для этого возможность без глючных гемов и т.п., чтобы я просто в Rubymine или другом редакторе захуярил код, а потом сделал apk и протестил на своём телефоне?
Вопросы настолько простые, потому что я нуб в программировании, просто есть идеи приложений, которые я хочу сделать.
В теории можно. На практике - НЕ ЛЕЗЬ БЛЯДЬ, ОНА ТЕБЯ СОЖРЁТ.
Начни с гугла что ли.
https://habrahabr.ru/post/165071/
Идея пистаь на руби под ведро не очень.
Ты наверно про какие-то другие курсы думаешь. Эти курсы платные и стоят 1к баксов. Гугол выделил 15к (или около того) бесплатных месте. Нужно было заполнить анкету, чтобы появился шанс на то, что тебя возьмут. Вот тут вся инфа - https://www.udacity.com/course/android-developer-nanodegree-by-google--nd801
Ой нет, не то. Вот это - https://blog.udacity.com/2017/09/announcing-60000-challenge-scholarships-udacity-google.html
Это тоже.
Зочем?
именно из-за этой статьи я и обращаюсь к тем, кто уже пробовал.
а если на яваскрипте писать, перспективы сразу становятся лучше?
Не думаю что тут кто-то настолько извращался что бы на руби писать, смысла нет.
Ну на жабоскрипте пишут, но опять же тут таких мало, реакт нейтив конечно лучший из их семейства.
сейчас заглянул в их тему и действительно в него упёрся.
что ж, говорят его несложно освоить, почему бы и нет...
>>087549
>>087555
Нет, курсы как были бесплатными, так и есть: https://classroom.udacity.com/courses/ud853
Бабло нужно только за сертификат и бестолковое код-ревью финального проекта платить.
Часть плана Гугла по насыщению рынка миллионами низкооплачиваемых макак. http://adage.com/article/digital/google-train-2-million-android-developers-ffree-india/304979/
Ебашь сразу на Хаскелле: https://github.com/neurocyte/android-haskell-activity/blob/master/src/HaskellActivity.hs
нет уж, в интернетах пишут что реакт — новый и классный, так что начну с него, хуй уж с этим раби, подождёт.
На gmail почту приходят письма с ивентами, в которых есть даты. Типа такого то числа приходите на такое то мероприятие. Гугл календарь эти мероприятия автоматически добавлчет на указанные в письмах даты. Как мне такое же сделать?
Меня взяли на Android Basics. Пока очень смахивает на какую-то хрень: материал выдают без объяснения того, как всё это работет. Даже и не знаю, стоит ли тратить время.
Берёшь и делаешь. Или ты ждёшь, что за тебя код напишут?
Этот курс они используют для отсева кандидатов. Из 20 000 стипендиатов по итогам этого тренировочного курса они отберут 2000, которые получать доступ к Android Basics Nanodegree Program.
Сертификат ты себе только в жопу сможешь засунуть, а код-ревью там уровня LGTM! Looks good!
Чего у тебя так припекает? Курс то как сам по себе? Стоит на него тратить время, или можно как-то быстрее и качественнее эту информацию получить?
Похвастался в рабочем чате, что меня приглашают в Google
Чёто почитал инфу и хуйнёй какой-то это оказалось. Все интересные плюшки будут только во втором туре, куда смогут попасть только 10% от изначальной массы. Отбирать будут в основном, как я понял, по активности на форуме и в слаке, по-скольку задания, которые выдают в первом туре уже с решениями и тебе по-сути делать нихуя не надо, только перепечатывать. Т.е. отбирать по результатам задания не получится, так как у всех всё одно и тоже будет. Да и там сказано, что проверять никто это не будет. Всё это во втором туре только. Соответственно, если ты не социоблядь, то сразу в пролёте оказываешься.
Вот так неожиданность!
А то у меня сборка градлом падает с ошибками вроде "Exception while marshalling что-то там .xml. Probably the SDK is read-only".
https://github.com/lawloretienne/Loop/blob/master/app/src/main/java/com/etiennelawlor/loop/network/models/response/Video.java
Ну хуй знает, такой себе код. Запросы на сервер прям из фрагментов вызываются и там же проверяются.
Проиграл с пика. Хитро!
https://bitbucket.org/derekwilson/recommender-android/src/
Недостаточно фабрик, я бы еще добавил.
Архитектуры нет, тестов нет, ci нет, единообразия стиля нет, куча закоментированного кода
У меня просто в ~/Android/sdk лежит, никаких проблем нет.
> куда его можно засунуть на общем билд сервере
В Docker-контейнер.
После тщетных попыток, вернулся к прежнему решению, и перенес часть кода из метода инициализации плеера в метод, где происходит запрос данных.
Очевидный Claris Organizer очевиден.
Советую посмотреть бесплатный курс на udemy, там нормально подходят к всей хуйне и не дрочат тебя лейаутами пол месяца
Есть какой-нибудь трюк, чтобы скрывать элементы, если высота экрана слишком маленькая (в лендскейпе, например)? C ловлей смены размера все очевидно, а можно на чистом XML скрыть? без дублирования лейаутов и скроллвью, понятное дело
Не доклеил пики - нужно в landscape оставить только good button.
Там вместо бутона десяток элементов с прописанными лейаутами. Их тогда либо выносить во фрейм, либо в инклуд, иначе все это чревато мучениями с поддержкой; в любом случае, тут уже проще будет кодом.
Тут больше академический интерес, может, есть какой-нибудь andoid:minScreenHeightToDisplay.
Короче нагуглил-таки непортабельный изврат, который все равно использует альтернативные файлы
https://stackoverflow.com/questions/24187867/hiding-views-declaratively-based-on-screen-size-in-android
Кстати, сработало. Действительно возможно все.
Как минимум два пункта пиздеж.
По факту зависит от целей приложения. На ведре так небось еще и то что лагать не должно лагать будет.
Ну да... А ещё обычные игры исчезнуть, ведь в браузере тоже есть игры и их даже скачивать не надо.
Все кроме двух пунктов - пиздеж и оправдания неосиляторов и аутистов.
Уже блеять сколько их было, фонегапы ионы и подобной хуйеты, но js долбоебы досихпор не могут остановиться думать, что их параша лучше всего остального и клепают продукты однодневки, которые через год два уже поддерживать никто не хочет.
Работаю дома, офф. стажа меньше года. До этого месяцев 6 работал в офисе.
Спрашивай свои ответы
Веб вью это пол беды, хуевое сообщество у того же реакта, куда более серьезная проблема.
Просто на удаленке сижу. Решил работу поменять и через hh отбирал только удаленку. Через пару собеседований нашел компанию в дс.
Сам я эту тему гуглил, но на Stackoverflow пока никто не ебет, что надо делать, в инете вменяемых примеров нет. Что-то нашел, что для фоновых сервисов надо теперь юзать JobService, но опять же, адекватных примеров для JobService+Firebase нет вообще от слова ВООБЩЕ. Такая беда, аноны.
Кто-то из опытных девелоперов с таким сталкивался? Как разрулили? С меня как всегда два чаю
ну же, неужели никто пуши через firebase в приложениях в последнее время не делал и не проверял на 8 андроиде?
Твое место в /b или /po - вали туда. Тут другое общение и более умные обсуждения, не для тебя
https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
я очень надеюсь, что это сарказм или тралинг. Потому что за такие моменты:
> pinnedMessageTextView.setTextSize(14);
>Theme.getColor(Theme.key_chat_topPanelMessage)
>LocaleController.getString("стринга, не вынесенная в отдельный класс с прочими ключами или хотя бы в глобальную переменную"
> антипаттерн проектирования, так как "god object"
я бы отбивал нахуй руки из-за нечитаемости кода и невероятно сложной отладки.
То что телеграм - большая и используемая программа - не значит, что там нет говнокода и быдло кода. И пример, что ты кинул - наиболее наглядный.
а если хочешь научиться писать по-настоящему читабельный и чистый код, то во-первых, нужен опыть хотя бы года 2, чтоб знать досконально, что и как связано, а во-вторых, не ориентироваться на отечественных разрабов, как минимум.
ебать, вот это говнокод. за такое нужно сразу руки отрубать нахуй, чтобы они больше не прикасались к клавиатуре
ты не считаешь, что там жуткий говнокод?
Посоветуйте чтива по:
- mvp, design patterns (в теории знаю что такое мвп, юзать не умею, знаю синлгтон, билдер)
- web sockets
- Dependency injection, dagger
- butterknife
- rxJava
- Room, Dao (в понедельник надо бд спроектировать, а я ОРМ не юзал раньше)
Нужны топовые гайды, которые быстро введут меня в курс дела.
Также посоветуйте годные ресурсы чтобы держать себя в курсе в ИТ сфере, новостные сайты, каналы в соц сетях етц.
Шли data и не убдет автосгенерированного нотификейшона.
>mvp
Семпл от Антониа Левиа и от гугла в clean architecture
>web socket
Чо ты там про них учить хочешь? Это костыль для веба который не умеет в обычные сокеты, по сути открывается обычное соединение, которое не разрывается очень долго и постоянно гоняются туда-сюда сигналы что бы проверить что ты на месте. В okhttp из короробки есть.
>Dagger
Просто что бы тебе легче управлять зависимостями было, самое узкое место - говняные классы ведра, где нельзя вцепится в конструктор. 3 статьи на habr'e от xoxol_89 мне показались самым лучшим вариантом.
>butterknife
Просто тулза что бы не ебашить десяток findViewById, генерирует классы в компайл тайме, но в рантайме создаются через рефлексию, но это не важно. Ты декларативно записываешь свои вьюхи/листенеры вьюх в поля класса, а потом вызывааешь bind/unbind
>rxJava
Няшная штука, но многие пользубтся не правильно, лучше всего презенташки от Wharton'а. Ну и вообще понимания смысла реактивности.
>Room
Это не ОРМ, странно что впилили в проект, только недавно стабильной стала. Лично мне показалась менее удобной чем StorIO, позволяется тебе декларативно задать DAO для работы с базой.
Просто берешь гугл/медиум/забр и смотришь статьи там, ну еще семплы на гитхабе.
Стоит ли идти туда или лучше на галеру где дадут соло проекты / в тиме 4< человек ковырять?
С помощью рисования на холсте.
Кстати да, жуткий говнокод. Тем не менее аппа работает стабильно.
Как разработчики/разработчик справляются с этим? Как тестируют?
Как правильно, нет, ибо люди этим действительно разные занимаются.
И ML на мобильных устройствах а ближайшее время не предвидется. Почти все приложения (Prisma, vl, аппы гугла, микрософта и Яндекса) шлют данные на сервер, который уже там с ними что-то делает.
Проблема такова: Нужно прикрутить bassboost и virtualizer к проигрывателю. Я сделал это, но не уверен, работает ли. И ещё одна вещь: хотел сделать так, чтобы по нажатию одного выключателя - другой отключался. Графически так и выходит, но вот музыка продолжает играть. https://pastebin.com/4duu99BP
Тебе надо sketch прочитать, или ты хочешь что бы тебе на основе скетча весь UI сделался автоматом?
Для первого есть Zepplin/Figma, для второго тебя собственно наняли.
точнее .com. Вот пример кода, который бы работал не с ларавелом. Я попытался что-то сделать, но ответ не получаю.
https://pastebin.com/cAKJdNCA
Причем здесь фреймворк, причем здесь домен? Ты понимаешь что ты делаешь? Токены обычно пихаются в хедеры, смотри как доабвить хедер к запросу. Боди пишется через стрим, опять же примеров полно.
> HttpsURLConnection
> JSONObject
Выкинь это нахуй и используй OkHttp.
> Куда писать oayth/token?
В Authorization Header.
Это шутка такая или куда? Задание для даунов, а ты заставляешь читать лишнего. Полиморфизм - могу, умею, практикую. Но в данном случае что нужно сделать, применяя полиморфизм - неясно. Не мог бы ли ты не так абстрактно сформулировать совет свой?
Тут как минимум половина не понимает что они делают.
Есть такое, и как же прекрасно, что на это абсолютно поебать и к проблеме это не имеет никакого отношения
Что-то в голос прорвало посмеяться с твоей логики: не разобравшись толком - скорее показать, что ты хоть что-то выучил за свою жизнь, ведь без тебя бы никто и никогда не узнал настолько гениальной вещи. Иди учи школьников, гений домашний
java не знаю.
укажите порядок, и если уж нужно сначала java, то книги.
английские ок, лишь бы можно было достать в бумаге.
пацаны, как выучить kotlin правильно?
java не знаю.
укажите порядок, и если уж нужно сначала java, то книги.
английские ок, лишь бы можно было достать в бумаге.
1) Трей Нэш, «C# 2010. Ускоренный курс для профессионалов»
2) Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му, «Язык программирования C++»
3) И только потом уже Benjamin Evans, David Flanagan, «Java in a Nutshell» вроде бы у неё есть перевод.
>kotlin
Он не выйдет за пределы своей платформы, эти знания бесценны в том смысле, что их ценность —
Обосрался
минимум 8 гигов оперативки, остальное не так важно
Там отдельно для сша (50к мест) и для EMEA (60к мест) (Europe, the Middle East and Africa) включая рашку.
та ну хз. ConstraintLayout как был дновым, нелогичным и баганым изначально, таким пока и остается. Так что, в зависимости от ситуации, LinearLayout или RelativeLаyout юзать вполне норм.
а какие там баги?
Почему при поиски кнопки через id нужно указывать это так:
button1 = (Button). Для чего этот button в скобках?
Лучше с Мейера и джавы начать, а потом уже в Андроид лезть, многие концепции не поймёшь, будет очень тяжело (сам через такую хуйню прошёл)
Сейчас бы учиться мобильной разработке, не зная что такое приведение типов.
Сейчас бы срать здесь ради ничего.
>>093898
Когда сможешь на это ответить, попытайся в андройд.
Типы данных. (Примитивные и ссылочные)
Циклы(for/while/for each)
Устройство памяти в Java(Stack, Heap). Так же важно понимать, как и на каком уровне работает Garbarage collector
Методы — возвращаемые/не возвращаемые
Массивы и коллекции, а так же операции с ними (Сортировки)
ООП (Полиморфизм, Наследование, Инкапсуляция, Абстракция)
Comparator и Comparable (для сортировки объектов)
Threads и Runnable, для понимания, как устроена многопоточность в Java.
Exceptions (try/catch/finnaly) — для «отлова» ошибок
Generics (Обобщенные типы)
А что за маскот у тредов? Откуда взялся? Имя? Фейсбук?
погоди, так это раньше было, в последних версия SDK оно уже не нужно, так как findViewById уже метод с дженериком.
Но отвечая на твой вопрос - это явное приведение типов, по сути - самая база джавы, без осознания этого дальше особо не уйдешь
Хочу получить рут на свое ведро, вот у меня установлен уже supersu это на рутирование никак не влияет?
Вспомнил того анона с тегами и вебмками.
Чтобы не полить тебя тонной говна, скажу лишь что пора бы научиться гуглить такие темы.
Как ты его ловко говном облил
Завтра иду на большую контору на собеседование, позиция - trainee
Не проебусь ли я, если пойду туда? Просто чувствую что деградирую аки ебаная шавка.
Здесь 500, там 300 в 600 после 3 месяцев.
Алсо, посоветуйте что повторить по джаве и андроиду?
Город указывать не буду, считайте обычный СНГ-город на 600к людей.
Ну если ты чувствуешь себя на 2к, то да, но возможно у тебя задач день на 3 часа пинания хуев. Сколько другие чуваки получают у тебя в конторе?
у остальных - также или меньше. Но вопрос не в остальных. А в том, сколько в среднем получают реально в этой сфере и не мало ли 800 баксов.
>но возможно у тебя задач день на 3 часа пинания хуев
та нет, не замечал такого
Шалом, генацвале, пытаюсь прикрутить дата биндинг. Судя по гайдам, что я нашел, нужно добавить по одной строке в градл модуля и приложения. Это я сделал. Дальше несу тег <data> в разметку layout'а, но компайлер в упор не видит атрибутов name и type у тега variable. Как мне заставить эту суку работать?
Да, действительно. Спасибо
Программно меняю цвет тулбара и статус бара, с ними всё окей, но списку на все эти цвета до пизды, мое приложение в нём остается белым.
Так что у тебя в стилях прописано? Вот там и смотри.
Из-за ошибки округления и порядка операций, хочешь супер-пупер точности используй strictfp или BigDecimal.
Пицценос, прежде чем за джаву браться, почитай как компьютер дроби хранит в памяти.
А ассемблер я не должен знать? Почему у всех нормальное округление, а жаба проёбывается на 8 знаков.
> А ассемблер я не должен знать?
Должен. Только не ассемблер, а язык ассемблера.
И байт-код, конечно же.
Иначе так и останешься пицценосом, которого унижает собственный код.
Посоны, а что вы разрабатываете? Большинство людей на телефоне ничего, кроме браузера, соцсетей и читалок не держат, а если им что-то нужно, то они гуглят в браузере, а не в плэй маркете.
Других способов использования ведра я не вижу, просветите меня плес.
Вообще, если человек не может реализовать монаду на CMOS технологии, то ему нечего делать в программировании.
Они и не делают, их говно проваливается нахуй. Меня на фрилансе раз в месяц просят написать супер оригинальную соц сеть.
Алсо, есть еще андроид тв, андроид часы, андроид машинки.
Тоесть вы фрилансите на лохов с ОРИГИНАЛЬНЫМИ ИДЕЯМИ, которые сразу же проваливаются? Ебать, сколько же таких лохов существует, если андроид разработчики актуальны.
В моем манямирке, погромироаание существует только в вебе и Энтерпрайзе, и я хочу понять, существует ли оно за этими сферами. как я понял, на ведре и гейоси его нет
Да один хуй что с вебом, на днях в руки попала индуская апка, суть:
есть 2 апки, одна для доктора, вторая для пациента
пациент может вызвать доктора на дом, у доктора приходят нотификейшены от клиентов, менеджмент вызовов и т.д.
Фриланс для докторов короче
Челик хотел редизайн и рефакторинг
Когда я начал тестить он мне написал что у них пиздец как сервера напряглись и он не понимает что происходит.
Апке больше года, до 300 скачиваний
Про PDF обсуждалось в начале одного из прошлого треда, можешь почитать. В кратце: всё плохо.
Пидорнут. И хорошо.
Это частая хуйня, в прошивках от сосунга постоянно и даже в AOSP. Вообще странно что эти хуйни не вызывают getApplicationContext
асинкс таски вообще лучше забыть и выкинуть. Нужна многопоточность - thread в помощь. Запросы через связку retrofit+okhttp, там асинронность нормально соблюдается. Сверху потом приправляй Rxjava + mvp архитектурой. Если и с этим справишься - то dependency injection (dagger 2). Когда перечисленное закончишь и врубишься, то считай работа андроид девелопера тебе обеспечена
Тупая мелкобуква, причём тут двач. Давай, попробуй в ведре многопоточность через Thread реализуй, сразу по ебалу от тимлида схватишь.
Корутины, кстати, просто щикарная вещь. Что мне не нравится в rxjava, это то, что нужно плодить кучу классов для промежуточных стримов, либо для того чтобы объединить несколько стримов в один и тд. А с корутинами просто херачишь код как раньше.
ебать дибил, как там в 2011? Асинк таски - устаревшая хрень, без адекватной отмены задач, которые уже выполяются, без адекватных перехватов их же и т.д. Сами гугл признали, что асинк таск - неудачная замена тредам в андроиде, да почитай хотя бы англоязычные форумы об этом.
То что ты упомянул тимлидов, которые юзают асинк таски - это лично твой манямирок. Во всех конторах, в которых я работал, либо с людьми из которых общаюсь - все чуть ли не сразу говорили джунам, что асинтаски - зло, вместо нах юзать треды. Очень много людей на собеседованиях из-за этого валилось, потому что дупля не давали, что такое тред из-за недостаточной грамотности в кодинге и лютого надроча на асинктаски после чтения русскоязычных форумов.
Буквально недели 2 назад искали нового мида в компанию, выбирали из двух кандидатов, в итоге выбрали того, который использовал в определенных местах именно треды, вместо тех же тасков.
Любой тимлид тебе по ебалу даст как раз за то, что ты эти таски заюзал. А если ты их еще делаешь для сетевых запросов, то тебя надо сжигать живьем имхо.
В общем, ты обосрался, перекатывайся в пхп, там тебе будет проще
Тупая мелкобуква продолжает прилюдно обсираться.
> ебать дибил, как там в 2011? Асинк таски - устаревшая хрень, без адекватной отмены задач, которые уже выполяются, без адекватных перехватов их же и т.д.
Где я говорил обратное, даун?
> ты упомянул тимлидов, которые юзают асинк таски
Пальцем покажи, где я такое писал. Долбоеб, сам придумал хуйню, сам стал её опровергать.
> вместо нах юзать треды. Очень много людей на собеседованиях из-за этого валилось, потому что дупля не давали, что такое тред из-за недостаточной грамотности в кодинге и лютого надроча на асинктаски после чтения русскоязычных форумов.
Давай, показывай, как ты Thread для асинхронных запросов на сервер используешь. Обоссым твой говнокод.
> Любой тимлид тебе по ебалу даст как раз за то, что ты эти таски заюзал. А если ты их еще делаешь для сетевых запросов, то тебя надо сжигать живьем имхо.
В общем, ты обосрался: сам придумал хуйню и приписал её мне. Представляю, какой ты код пишешь. В js-треде тебе были бы рады.
> mvp архитектурой
Охуительные познания, кстати.
"Архитектура mvp" - это что-то уровня "новый-год мем КЕК" а может даже ниже.
Так же как и обычный код? Корутинам можно задавать пул потоков на котором они будут исполняться. В случае андроида есть стандартный пул для выполнения корутин в гуи потоке - UI. Ну а дальше остаётся только как и с rxjava сделать провайдеры этих пулов и передавать в случае реального кода пул с бекграунд потоками, а в случае тестов UI пул.
Ещё один пиздоглазый? Где я говорил, что AsyncTask нужно использовать?
> Thread - единственный выход, если надо что-то сделать в отдельном потоке.
Давай, показывай код, как ты Thread на ведре использовать будешь.
Я не он, и вообще то что я сейчас покажу это очень хуёво, но всё же - https://github.com/DrKLO/Telegram/blob/dd679bd7d1713896272016d4e53c3b4ead744683/TMessagesProj/src/main/java/org/telegram/messenger/DispatchQueue.java
чего ты агришься сразу?
Вот ты пишешь:
>Давай, попробуй в ведре многопоточность через Thread реализуй, сразу по ебалу от тимлида схватишь.
намекая, что нужны асинктаски, так?
>Давай, показывай код, как ты Thread на ведре использовать будешь.
ты че, серьезно? Скажи, а ты точно программист?
(new Thread(() -> {
// 123
// 456
})).start();
> намекая, что нужны асинктаски, так?
Ты опять придумываешь за меня то, чего я не говорил.
> ты че, серьезно? Скажи, а ты точно программист?
> (new Thread(() -> {
> // 123
> // 456
> })).start();
Охуенно. И где тут синхронизация с главным потоком? Где возможность отменить асинхронную операцию? Где возможность использовать пул потоков? Где обработка смены конфигурации (например поворота)?
Услышать, что асинктаски плохие - услышали, но вот понять, почему они плохие, и как сделать хорошо - не в курсах. Зпто перед другими ватывальщиками выебываются "коко асинктаски коко".
ок, если не асинк таск и не тред, то что?
>Охуенно. И где тут синхронизация с главным потоком?
runOnUiThread
> Где возможность отменить асинхронную операцию?
interrupt
>Где возможность использовать пул потоков?
ExecutorService threadPool = Executors.newFixedThreadPool(8);
>Где обработка смены конфигурации (например поворота)?
тут уже уточняй задачу, вариантов решений подобного масса. Самый лучший - это, банально, отключить пересоздание экрана при повороте в манифест файле.
>Услышать, что асинктаски плохие - услышали, но вот понять, почему они плохие, и как сделать хорошо - не в курсах. Зпто перед другими ватывальщиками выебываются "коко асинктаски коко".
ты стал отвечать оскорблениями - оскорбления пошли тебе в ответ, хули ты ноешь теперь?
> Самый лучший - это, банально, отключить пересоздание экрана при повороте в манифест файле.
))
если дизайн экрана не меняется (либо меняется минимально), то это и вправду лучший выход
Как земля.
Считаешь собственные значения матрица поворотов, проводишь перпендикуляр к получившейся гиперплоскости, это оно и будет
Относительно, что в джаве знаешь?
Теория по андроиду не сложная но нужен опыт (хуярь погодные аппы на гитхаб)
Ну типа кандидат должен уметь писать по 200 строчек кода в минуту, иметь 10 успешных аппок на маркете с 100к скачиваний ну и было бы неплохо уметь анимации делать
хм, я вот умею анимации делать. На каждый экран аппы пихаю, например. Я успешен?
Если будет такой же кандидат, который умеет все то же самое кроме анимаций то возьмут тебя, например.
1. открыть соединение с БД один раз и пользоваться по необходимости
2. открывать и закрывать непосредственно до и перед операцией DML
?
Перед каждым действием, когда нужна запись getWritableDb (для чтения - getReadable). Не закрывай, ведро само закроет когда грохнет твое приложение.
Проблема в том, что хз откуда узнать маркетовский для сравнения, ну или верный фингерпринт сертификата, которым подписано приложение.
В том и дело, что с гуглплея не могу скачать (недоступно для моей страны). VPN не решил проблему, т.к. гугл подхватывает страну из аккаунта, ну или я где-то затупил.
Маня, архитектура затрагивает всё приложение, а MVP/MVVM определяет только способ организации слоя, ответственного за отображения и взаимодействие с UI.
та всем похуй, все это понимают именно как архитектуру. А это:
>Это не архитектуры, а презентационные паттерны.
нахуй никому не нужное задротство, не меняющее сути.
По делу есть что сказать?
1. Это архитектурные паттерны.
2. Эти архитектуры затрагивают все приложение.
Почему так.
Model - набор классов отвечающих за данные, работу с сетью, получение и обработку, базы данных и тд, а не сраненькие POJO. И да, Model включает в себя так же и сраненькие POJO.
View - собственно то что отображает твои данные.
Presenter - класс, который является прослойкой между Model и View, обрабатывает инпут от пользователя и решает что с ним дальше делать. Получает данные от Model и решает как поступить с вьюхой на основе этих данных.
Так о чем я? О том что это архитектурный паттерн, то есть полноценная архитектура.
Так в этом и соль — при аплоде apk из apkpure какие гарантии того, что там нет изменений в коде?
Идея в том, чтобы проверить, что нужное мне приложение я могу скачать из apkpure в том же виде, в каком оно в Google Play.
Не понимаю, почему на странице приложения в гугл плей нет информации о фингерпринтах ключей разработчиков, которыми они подписывают распространяемые апк.
Проблема для меня в том, что я не знаю, насколько можно доверять apkpure (возможно, страхи из прошлого, и идут ассоциации с васянскими сайтами "скочать апк безплатно", но тем не менее, просто интересно, можно ли как-то более-менее достоверно проверить апкшки не из Google Play).
> Эти архитектуры затрагивают все приложение
Только если в твоей приложении ничего кроме UI и нет.
Собственно, MVP ничего и не говорит о том, как организовать M. Более того, MVP не говорит ни слова о том, что делать с бизнес-логикой. Именно поэтому это не архитектура.
https://habrahabr.ru/company/mobileup/blog/335382/
>>098506
Да ну?
> MVP is not an architecture pattern: It is just a way to organize code in the presentation layer
https://medium.com/@Miqubel/refactoring-to-mvp-b504a3774ffd
https://antonioleiva.com/mvp-android/
>>098293
тут я просто попросил описать отличие этих двух архитектур, с минимальнми примерами в коде или, на крайний случай, словами. Нормально попросил, понятно описал, потому что юзаю в жизни мвп и стало интересно "а что если мввм?". Но нет же, сука, местные ебучие дегроды решили доебаться до слова АРХИТЕКТУРА, развести срач, а потом и вовсе начать кидать бесполезные ссылки, где в одном предложении встретятся слова mvp и architecture. Поистине, pr - сборище для даунов, которые минимально вкатились в программирование , в более-менее сложных вопросах нихуя не разбираются, но тем не менее, пытаются блеснуть своим "дохуя умным" нахуй никому не нужным мнением, даже если в вопросе вообще не разбираются, и вот этот вопрос это явно показал. Идите вы нахуй, короче. Теперь воспринимаю pr не более чем флудилку на околопрограммистские темы и место для тралинга недопрограммистов. Еще раз идите нахуй.
> Пиздец, как же вы заебали.
> тут я просто попросил описать отличие этих двух архитектур
Это не архитектуры.
Ответ на твой вопрос гуглится в один запрос, но ты ждёшь, что всё за тебя разжуют и расскажут. А когда тебе указали на распространённую ошибку, о которой ты от гугла уже не узнаешь, ты начал брызгать слюной и обзывать всех школьниками. Так что да, с каким подходом к обучению, тебе нечего делать в этом треде. Да и в IT тоже.
>гуглится в один запрос
>ошибку, о которой ты от гугла уже не узнаешь
кек, ты обосрался в своих же паре предложений.
>Это не архитектуры.
а еще упорно пытаешься оставаться долбаебом. Почитай уже про мвп, вникни в суть, пример на гитхабе том же найди небольшой. Посмотри, что в проекте с mvp классы по своему рассортировываются по пакетам, имеют определенные названия. А это отчасти и есть архитектура проекта.
>ты начал брызгать слюной и обзывать всех школьниками
потому что так оно и есть - тут в своем большинстве либо школьники, либо долбоны с комплексами школьников, вроде тебя. Ты даже до сих пор не понял, в чем заключался мой вопрос - там можно было проигнорировать даже слово архитектура, суть бы не поменялась. Но с твоими комплексами пришлось разводить срач даже тут.
>Так что да, с каким подходом к обучению, тебе нечего делать в этом треде
кек, с каким таким? Я задал вопрос - дауны развели срач не по теме практически, какой ту тподход, ты о чем вообще, маня.
п.с. я достаточно знаю программирование, чтоб игнорить не шарящего школотрона с двачей вроде тебя, который мне заливает про архитектуру, не шаря в ней сам. Но вопрос насчет различий мвп с мввм был интересен, однако я видимо оказался слишком наивен, думая, что тут кто-то вообще поймет саму суть и уж тем более что-то внятное напишет.
Ты как тот еврей из анекдота, который всё прощается, но никак не уходит.
Съеби уже, раз собрался, гуру программирования. Мы ты тут все очень завидуем твоим скиллам просто, поэтому и бесимся.
Согласен, мне рановато андроид, но увы не я решаю. Я на курсе от армии(я из израиля). Тут нам просто выдают материал, и идите учите сами. Поэтому темы выбирает учитель, а я учу, как могу. Увы, не все ответа находятся в гугл, или я неправильно подаю запрос. Но тут сидят довольно умные люди, возможно кто и поможет.
>>093943
>>094074
>>094137
>>094029
Спасибо за ответы. Всё прогуглю.
Ответил тут анону выше, но напишу еще раз, если интересно. Я получил курс от армии (не рашка). Тут нас обучали джаве пару месяцев (1 урок в неделю, что на мой взгляд маловато). Потом сразу перевели на андроид. Дали пока задание: написать калькулятор через фрагменты. Сижу, пытаюсь понять что и как делать, но особо подвижек нет. Знаю, что отсутствует база знаний по джаве, но у меня почти нет времени возвращаться назад, пока не сделаю калькулятор. Поэтому пытаюсь выгуглить\спросить что могу, чтобы потихоньку начать понимать суть вопроса.
>>098784
Прошу прощения. Сама аннотация deprecated. Уже нашёл решение. Спасибо, в любом случае.
https://stackoverflow.com/questions/45973987/override-in-all-methods-is-decripted-in-new-project-created-in-android
гарантий никаких, но я проверил пару файлов когда-то - совпало.
ещё рекомендую yalpstore, там можно качать через токены от чужих аккаунтов.
Ккастомна вьюха и TouchListener, а дальше у вьюхи на канвасе раз-раз.
https://code.tutsplus.com/tutorials/android-sdk-create-a-drawing-app-touch-interaction--mobile-19202
>>099615
еще есть такая замечательная вещь, как jenkins, но имхо, там без бубна и двух литров не разобраться. Но если ты усидчивый, то можешь попробовать погуглить и пошерстить инфу в эту сторону. Вкратце - код пишешь у себя , заливаешь на битбакет, а дженкинс из определенной ветки все достанет, скомпилит и разошлет кому хочешь.
./gradlew installDebug
погуглил бы сначала, что это и с чем едят. А потом бы агрился уже, ну. А вообще не знаешь - лучше промолчал бы , школьник.
кек, школьник зашел на борду, отличную от /ро/ или /b/, увидел какое-то сложное незнакомое слово и по старой привычке вскукарекнул, не подумав даже вникнуть минимально в суть. Классический двач, че. Однако уебывай назад в /po, недоразвитый
Crashlytics?
И есть логи.
Какой способ лучше, практичнее и менее пердольный для ограничения логов (для релизной версии приложения) в этом ядре, учитывая регулярный обмаз тестами?
- Интерфейс уровня Debuggable с методом setDebuggable(boolean isDebuggable) и проверкой флажка перед выдачей лога, который реализуют логгируемые классы?
- ProGuard (им вообще реально убрать логи, скажем, в десктопном коде, в котором нет андроидных костылей?)?
Можно передавать экземпляр конфигурации через все приложение. Никаких неявных зависимостей через статические поля или синглтоны. Дополнительные плюшки в виде возможности передать еще всякое. Никакой магии уровня ProGuard'a. И все это с тестируемостью.
Напрямую зависит от того, что ты подразумеваешь под этим:
> Есть кроссплатформенное ядро приложения.
Что-то вроде того, как в libgdx, например. Java-модуль, который должен быть максимально независимым от того, запускается приложение на пеке, или на мобилках.
Рисуй drawable на канвасе
>Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
Не был тут пол-года.
Котел уже победил? Все упертые жаваны уже под шконкой?
вот есть у меня recycler view с id recView
Как теперь мне заставить его схавать коллекцию элементов и отображать каждый ее элемент в кастомном лэйауте?
Конечно, сразу же все топовые компании перейдут писать под котлин. Манямирок привет.
Правда ли что большая часть времени уходит на верску, чтобы приложение одинаково красиво смотрелась и на последнем Нексусе, и на китайской свистелке за $100?
И вопрос по поводу карьерной лестницы. Представим walkthrough мобильного разработчика. В начале пути это стажер/джун, а кто на самом верху, к чему нужно стремиться?
Неправда.
Некоторые уже перешли. И будет переходить всё больше и больше.
На iOS кстати так же было — сначала он 3 года назад появился и был нахуй никому не нужен. Потом на него переписали линкедин. Твиттер. Кучу самых популярных либ. То у мамонтов, которые писали на Objective-C (некоторые начали на нём писать 20-30 лет назад), тоже началось отрицание. Сейчас и белые люди, и ваффиянский тырпрайз перешёл или переходит вовсю на Свифт. Родилось поколение разработчиков, которое не знает Objective-C. И так далее.
>>102439
>В начале пути это стажер/джун, а кто на самом верху, к чему нужно стремиться?
Если ты постоянно учишь новое, радеешь за чистый-чистый код, помогаешь всем коллегам — то очевидно твою жопу рады будут продать за дорого, бросая на самые трудные вещи. И платить соответственно будут прилично.
Если тебе больше нравятся организационные моменты, собеседования, умение найти подход к каждому разработчику — станешь лидом мобильной платформы на своей галере.
>То у мамонтов, которые писали на Objective-C (некоторые начали на нём писать 20-30 лет назад), тоже началось отрицание. Сейчас и белые люди, и ваффиянский тырпрайз перешёл или переходит вовсю на Свифт. Родилось поколение разработчиков, которое не знает Objective-C. И так далее.
Не знаю, что там свифт, я в живую подходил к одногруппнику, который работает в компании, и он мне говорил, что свифт такое себе, что-то там про несовместимость сказал и в конце добавил, что нормальные компании пилит Objective-C. У него стаж третий год и думаю вряд ли он будет пиздеть. Так что сори, тырпрайз.
>Ты просто пидораха,
Мы сидим на двощах и верить какому-то левому пидору - первая необходимость.
Возможно. Просто у меня круг общения несколько шире, чем пара одногруппников. А именно — весь цвет и тырпрайз, и стартап-разработки Пидарахии, Усраины (где пилится куча всего для первого мира) и т.д.
Несовместимость — решат в след мажорном релизе. А пока — похуй на неё. Эппл убил Обжси разработку. Всё. О чём можно говорить дальше.
Among Android developers using either Java or Kotlin – and not other languages via Android NDK – 94.9 per cent used Java in September 2016 and 5.1 per cent used Kotlin.
A year later, the ratio has shifted to 85.7 per cent Java and 14.3 per cent Kotlin, a fairly sizable change.
"Since Google blessed Kotlin as an acceptable language on Android, which happened in May at Google I/O, Kotlin use has just exploded, " said Paul Kopacki, veep of marketing at Realm, in a phone interview with The Register. "We think by the end of next year, Kotlin will have eclipsed Java for Android apps."
According to Realm, 20 per cent of Android apps built with Java prior to Google I/O are being rewritten in Kotlin.
Ну сам смотри, по мне так это охуеть какой рост, учитывая что 15-20% от всего кода, включая уже написанный тоннами джава-код.
очень удобно. а если я хочу в этом onclick'е открывать новую активити с резалтом, то мне еще в конструктор адаптера закидывать ссылку на main activity?
Зачем ссылки? Адаптер знает всю хуйню про элементы которые в нем размещены. Вся хуйня из элемента по которому кликнули пакуется адаптером в интент и отдается активити которая ее отображает/делает с ней все что нужно.
Во вьюхолдере.
У тебя ссылка на кликнутую вьюху в onClick(View v), v.getContext().
Сечешь?
Но в адаптере логику клика лучше не держать. Делай умные вьюхолдеры.
ВРЁТИ
>>102558
я не джава, я из соседнего лагеря. что вы под коллбэками имеете в виду? отправлять в конструктор VH/adapter'а делегат/указатель на функцию? или это у вас так называются обработчики событий типа onClick()?
>>102664
>У тебя ссылка на кликнутую вьюху в onClick(View v), v.getContext().
Сечешь?
не секу. что мне дает эта информация? типа можно по родителям добраться до активити?
>Делай умные вьюхолдеры.
это как гуглить?
Смысла делать их nested всё равно нет, неважно static или нет.
Если ты их так от всех кроме адаптера инкапсулировать пытаешься, то значит у тебя в них вообще ничего нет, кроме вьюх. Гугли sad ViewHolder.
От андройд треда - одно название. Хуй кто тебе скажет что-нибудь, здесь предпочитают сраться по паттернам МВПи и посылать нахуй ньюфагов.
Но это серьезно детские вопросы, погугли, собери все в кулак и применяй.
да я беситься начинаю, когда гуглю. смотрю видосы у индусов, как они в конструктор viewholder'а через адаптер передают контекст активити И, сука, список объектов для отображения. и у этого 95% лайков, как будто это, блять, национальная идея у андроидов - делать всё через жопу. я отчаянно надеюсь, что это не так, и это просто индусы хуйню пишут, но блять, на 15000 просмотров 7 дизлайков. похоже всех такое устраивает
Только дебил учатся по видосиками на ютюбе.
Что-то хорошее там может быть только если доклады с конференций смотреть, да и то не все. Но там про такие ньюфажные темы не говорят.
я бы с радостью читал бы официальную документацию по настройке RecyclerView или DataBinding для него, вот только про onClick ни там ни там нихуя не написано. и на сайтах различных тоже нихуя, либо говно какое то. ютуб для меня был последней надеждой, но и там какие то индусы охуенные костыли пихают
это всё круто, конечно, но мне нужно с клика стартовать активити с результатом. как мне модифицировать пример обработчика в мануале, чтобы я мог это сделать?
>это как гуглить?
Берешь вьюхолдер и реализуешь всю логину отображения/обработки кликов внутри, а не в адаптере.
Во вьюхолдер в onBindViewHolder просто сеттишь данные в свой вьюхолдер типо
viewholder.setData(dataset.get(pos)).
>не секу. что мне дает эта информация? типа можно по родителям добраться до активити?
Ясно. Ты просто тупой.
Context имеет метод startActivity(даже не смотря на то что активити наследуется от контекста и то что все вьюхи в большинстве своем имеют контекст активити в котором созданы). Теперь сечешь?
Лол, о какой архитектуре ты говоришь, если долбоеб не может активити из клика стартануть. Можно и для вьюхолдеров ебануть всю связку MVP/MVVM и ещё чего.
Но этот долбоеб же не осилит.
Нужно иметь данные из настроек приложений: скажем, юзернейм и сессионный ключ. Храню я их в SharedPreferences. А вот как с ними работать:
1. Наследоваться от класса Application (я так понимаю он синглтон). В методе onCreate считывать в его поля из шаредов значения, при изменении настроек изменять эти поля, сохранять их в шаред к пример в onStop. Использовать данные как app.username.
2. Создавать класс настроек (он должен быть синглтон?), там в геттерах и сеттерах читать и писать данные напрямую из SharedPreferences. Использовать данные как appSettings.getUsername. В таком случае нужно передавать контекст в конструктор класса.
3. Обращаться к шаред в функциях прямо по месту требования.
Создаешь интерйфес SessionManager (допустим, называй как хочешь). У него можно получать токен/имя, че там тебе надо. Дальше развилка:
1) Создаешь объект класса реализующего этот интерфейс (может брать из перефернсов, может из аллаха и тд) в Application::onCreate, а дальше как-то его достаешь оттуда;
2) Берешь Dagger, добавляешь в компоненту модуль провайдяший этот самый менеджер, ну или в билере компоненты используешь @BindsInstance, как хочешь. А дальше либо инжектишь по нужному месту доставая компоненту из апликейшона, либо дергаешь из компоненты аксесор на эту штуку, тут уж как тебе удобней.
По сути второй вариант модификация первого, которая имеет смысл при большом графе зависимостей.
херово тебе. Это ведь базис уровня findViewById или создания фрагментов
Ухнал немнодко новово севодня
У него написано, что с апи 19 он вообще не нужон. При этом в доках он причислен к Dangerous Permission. И на стековерфлоу куча постов о том, что у них лолипоп+ выдаёт ошибку при попытке лезть без запроса пермишена. Кто-нибудь сталкивался с подобным, или это удел каких-то ноунейм китаедевайсов, и пермишен можно выкидывать?
Ты что-то путаешь. Read ненужен, а вот без write ты во внешку хуй запишешь. Разумеется без получения пермишена от юзера начиная с зефирки будет падать.
Ситуация примерно такая:
приходит стринговый массив. Количество строк неизвестно.
Мне нужно в зависимости от количества строк, создать такое же количество текстовых полей(для вывода строк) и кнопок рядом(повесить на них отдельный функционал). То есть парами: строка = поле + кнопка.
Проблема в том, что я не могу найти в Constraint, как выравнивать вьюшки относительно друг друга, ну и родительского Layout(подчеркну на всякий - создание интерфейса ПРОГРАММНОЕ).
Перешерстил немного гугл, документацию, но чет ничего не нашел. Выручайте.
Остальное я примерно знаю как осуществить, но вот в это расположение уперся и пиздец
Я уже только что понял, что я про эти прекрасные вещи забыл. Буду через них делать
Но все же, чисто теоретически, так сказать для общего развития, есть возможность программно двигать вьюшки? Вроде для Relative Layout что-то видел похожее. Но, для Constraint не было, хотя он же вроде подразумевает под собой все лучшее из Relative, насколько я понял
Можно двигать, можно добавлять. Например, делаешь линейный лайаут (вертикальный). Потом в рантайме засовываешь туда сколько нужно линейных лайаутов (горизонтальных) с кнопкой и надписью. Но там еще ебаться нужно со скролом, с размерами чтобы все ок было. Нормальных причин такое делать нет. Это если у тебя очень сложное вью, каждый элемент уникальный по структуре которая еще и заранее не известна (описание вытаскивается из json), тогда может быть.
Любую вьюху можно создать программно. Но вот насчёт constraint layout я не уверен. В Anko его тоже нет и не будет
В чем ты не уверен, имбецил? Любая вьюха которую ты объявляешь в xml все тоже самое умеет и через код.
Анон, сейчас будет самый тупой вопрос за время существования вашего треда:
мне нужно написать кое-какое приложение на андроид, главное - с простым почти статичным UI
есть какие-то годные эмуляторы, чтобы всё это дело тестить и запускать, потому что я червь с обосранной нокией 7310?
Сделай форк и сри в него. Потом отребейзишь в читабельный вид и вмержишь в нормальный репо
Ебать, сделай бранч.
И вообще уебывай в git тред
Есть, идёт в комплекте со студией.
> отребейзишь
TRIGGERED
https://blogg.bekk.no/why-you-should-stop-using-git-rebase-5552bee4fed1
Так никто и не предлагает ребейзить бренч репы, в котором уже кто-то работает.
Хериггеред! азаза
На то и форк, чтобы там страдать любой хуйней, ребейзить, форсить, хоть в жопу ебаться. Потом приводишь это все в красивый читабельный вид и делаешь мерж-реквест.
В гитлабе вроде это называется мерж-реквест. Но в час ночи я могу и сильно ошибаться
Какова продуктивность, популярность? Много ли работы? Есть фриланс или только энтерпрайс?
IOS ЛУЧШЕ, ЧЕМ ВАША ПАРАША!
Пройди на парашу, петух! И гейфон свой в жопу засунь!
кек,
как там фоновые процессы?
как там функциональность уведомлений?
как там перекидывание файлов с телефона на комп и наоборот?
как там работа с svgшками при разработке?
как там работа с svgшками при разработке?
как там эпловская экосистема по сравнению с гугловской? Особенно интересно про карты и видеохостинг почитать.
как там мультиоконность? напомню, что сейчас уже почти 2к18, а кое-где ее до сих пор не завезли.
добавляем ко всему этому ебанутую дороговизну телефонов, даже в сравнении равных по характеристикам моделей (пиксели против айфонов например) и яблокобляди идут нахуй отсасывать за очередной айфон
Это конечно все хорошо, но на ведре ис svgшками не все хорошо, как меня заебал варнинг unsupported tag, опять же всеми любимая фрагментированность.
>Как раз это в Эппле правильней сделано.
лел! правильно - это типо не сделано вообще? У них нет вообще такого понятия, как фоновый процесс, а в андроиде тебе на это Service есть.
>Это конечно все хорошо, но на ведре ис svgшками не все хорошо, как меня заебал варнинг unsupported tag, опять же всеми любимая фрагментированность.
ну хз, у меня всегда свгшки нормально парсятся. Если же не открываются, то прошу дизайнера перенарезать их, либо конверстирую в хмл сторонними сервисами на изи. Опять же, у яблокоблядей их нет вообще
>как там функциональность уведомлений?
>А что там не так.
то что в отличие от андроиде она не несут никакой ползы или функций
>у меня всегда свгшки нормально парсятся
Я про то что многи штуки с 23 апи.
>яблокоблядей их нет вообще
Ну как бы да, но но самам деле это не какая-то килерфича. закидываешь пдф с вектором и тебе сгенерит при блиде все нужные каотинки Может быть я просто непарвильно свгшками пользуюсь, максимум тинт/поворот.
>не сделано вообще
Так и проблем с батарейками нет! Тебе не нужно накладывать анальные ограничения на бэкгрануд если его нет.
>правильно - это типо не сделано вообще?
Именно. Спасает от разрабов-долбоёбов.
>в отличие от андроиде она не несут никакой ползы или функций
Первый раз про это слышу. Такие же там уведомления.
Зачем тебе исходники? Что-то их наличие не спасает от того, что любой телефон с Андрюшей это рассадник вирусов.
Sup, Аноны
Кому-нибудь удавалось считывать входящие USSD-сообщения?
Все, найденное мною в гугле, не работает, по крайней мере на моих устройствах
Алсо, возможно, кто-то знает другой способ автоматически определять свой номер на устройстве?
Через TelephonyManager не вариант, т.к. на большинстве устройств номер тупо не хранится. Можно выделять его из входящего смс с номером при запросе номера у оператора, но многие операторы возвращают номер в формате USSD
Хуев тебе за щеку. Сейчас бы в 2ккк17 кому то что то доказывать на анонимном форуме для маргинальных отбросов.
Вот есть Java и Kotlin.
Мне бы хотелось познать андроиз через котлин, без написания кода на ебаной джаве, это реально? Есть ли туториалы аля андроид с нуля, только на котлин?
Реально, но не тебе.
Учи джаву. После джавы перейдешь на котлин за день и на идиоматический котлин за неделю.
Не нравится джава - свифт и высокие зарплаты в ios разработке ждут тебя.
Твой слив.
Переводить разговор в разряд "зато он лилионер" это что то на уровне "а что там у Хохлов".
Предложили проект для совмещения, он огромный, грязно написан, использует похороненные технологии (robospice ещё). Глядя на него хочется только переписать все с нуля, но заказчики хотят только местами улучшить поддерживаемость, платить собираются хорошо. Т.к. есть основная работа, то пока думаю, соглашаться или нет?
Анон, ты стоял перед подобным выбором?
>Не нравится джава - свифт и высокие зарплаты в ios разработке ждут тебя.
Lol, в iOS ещё очень много проектов на objective-c. Чтобы всерьез туда вкатиться придется сначала прилично освоить, так сказать, первичный язык. А потом swift возможно и не захочется, как мне, например
Не лезь, блядь, дебил, сука, ебаный. Ты чё, хххуёл, я те сказали что ли? Залезь, наххуй, нака обратно, блядь! Дебил, блядь. Она тебя сожрёт, блядь. Нахуй ты б?..
Видимо ты прав, они ещё не хотят отказываться от этого говна.
А нахуя? Джава - это основа, без нее щитаю в андройд разработке делать нечего. Котлин - приятное дополнение для тех, кто знает яву, начинать сразу с котлина(не зная хотя бы шарпа) очень глупо т.к. почти вся экосистема, сторонние библиотеки, все это на яве и не смотря на крутой интероп, если ты не будешь знать яву - будешь натыкаться на кучу граблей и неочевидностей в использовании библиотек т.к. там идеоматический код на этих языках в куче мест отличается.
Да и сорцы интересных либ/проектов не сможешь читать.
На случай если ведро ко дну пойдет
Меня на собесодовании спрашивали писал ли я на котлине (этот вопрос поступил уже после того как я сдал жаву и другие технологии)
Если раскрашиваю обычный view, который внутри cardView то с закругленными углами получается пикрил2, а если ставить cardPreventCornerOverlap="false", выходит то, что на пикрил3.
Ебанись, сколько ваша ведроид студия ресурсов жрёт, на моём десятилетнем два ядра@два гига даже эклипс притормаживает, похоже, вопрос стоит-ли вкатываться в андроид-разработку для меня закрыт. Алсо, как оно на линуксе работает, через wine-костыли? Тогда всё ещё хуже.
нищеброд, мимо скролил главную
Нормально оно на линуксе рабоатет, джава же.
По личным наблюдениям лучше всего работает на маке, на прыщах тоже норм, никаких вайнов не нужно, это же не шарпопараша
Юзаю макбук-эир ай5 1,6Ггц, 8 гигов. Работать вполне комфортно, имею в виду, что эмулятор тоже запущен. Покупал его б/у за 45к. Зависимость есть. Кстати, заметил, что когда запускаю эмулятор под Орео апи 26+, то тяжелее работает. А вот 23 апи шикарно.
На эмуляторе для тестов все просто, 10.0.2.2 - это локалхост машины, на которой запущен эмулятор, соответственно его в base_url для ретрофита и использую.
А как можно получить внешний Ip или ip машины в своей wifi сети, используя который я мог инжектить его через buildConfig и тестировать приложение на своем телефоне?
Пробовал вот этот метод, но не работает и как я понял это просто более надежный аналог поиска адреса локалхоста.
http://jeremie-martinez.com/2015/05/05/inject-host-gradle/
Ты все таки определи почему не правильно отображает. Юзал несколько раз глайд на больших наборах картинок/фоток - все нормально и отоброжало и центировало, и перекодировало битмапы для превьюх. Большей йобы для изображений, на мой взгляд, уже не придумать.
Уж лучше любого другого говна
пробовал,если картинка вертикальная, то печалька.То есть если соотношение 3:1, например
C этим вроде разобрался
Если кому нужно:
settings -> editor -> code style -> xml -> android -> layout files -> insert line break after last attribute
Зато так и не разобрался как сделать чтобы xmlns=.... тоже переносилось на новую строку
везде стоят галки insert line break before first attribute, но если делать реформат разметки все равно этот блядский аттрибут неймспейса на той же строке.
Это баг или фича что?
Я всегда стараюсь в лимит влазить, но заказчик хочет ещё вот сранных либ добавить
>заказчик хочет ещё вот сранных либ добавить
Рекламка?
Нет, особо никаких проблем не замечал. Ну начиная с лолипопа. А что, прогвард тоже не вывозит? У меня так 50-60% вырезается.
Без proguard и не запустится же, слишком много методов
Притом самого кода прилаги - около 10к, остальное гугл и суппорт либы, + плюс ебаные аналитик либы rx 6к методов, я худею
>6к
Нашел с чего бомбить.
У меня io.reactivex очень няшно в 720 скукожилось. (в проекте только вторая)
Хз, использую Observable с ретрофитом и Single в некоторых местах, но вообще приложуха однотипная и небольшая, наверное из-за этого.
Сколько тебе вообще прогвард вырезает?
Нет, это отдельный плагин генерит при билде.
https://github.com/KeepSafe/dexcount-gradle-plugin
Билдил довольно крупный проект аналог Vimeo, первый запуск идет туговато, но потом в пределах пары минут, да и первый не особо далеко уходит. Но уснуть не успеваешь в общем.
Макбук эир сейчас не является чем-то дорогим и крутым, он даже наоборот сейчас является выбором нищебродов, которые берут себе устройство не на один год.
Нормально отработает, писать больше чем из одного потока он всеравно не умеет.
Хуя ты агресивный.
когда собираю на стационарнике за минуту, уже пригорает, думаю вот апгрейдить комп, как люди на таких корчах билдят не понимаю.
В случае ведра - нужно ли показывать свой говнокод на гитхабе? Или сойдет работающий пример из гугломаркета, и, скажем, приглашение в приватный репозиторий на bitbucket'е, если захотят видеть код?
Я бы тоже хотел себе стационарный комп, но таскать его по съемным хатам не хочется. Да и вообще, мобильный разработчик, должен быть мобильным.
асло купил себе ноут, с i7 , по идее даже мощнее стационарника, но собирает даже медленней.
Думаю вот взять макбук, чтобы ios подтянуть, так когда смотрю на их железо и цены - плакать хочется
Конечно хватит, меньше хабрапараши читай про звездочки и успешность на гитхабах. Такой инфантильныйуспешный челик скорее будет первым кандидатом на неоплачиваемые переработки и прочее говно в будущем, если его возьмут.
Если спросят то покажешь код, а так тебя должны по архитектуре спрашивать - типа как ты то делал, как другое. Код твой никому нахуй не нужен - все равно им прийдется дополнительные вопросы задавать, чтобы понять ты его писал или спиздил где-то. Разве что захотят просто на внешний вид посмотреть. Можешь перед собеседованием закинуть на гитхаб, а потом удалить чтобы не ебаться с доступом к битбакету.
П.С. Я сам активно тот же DI использую, не надо писать, чтоб я гуглил и т.д., все я в коде прекрасно делаю и все работает, я лишь спросил, нахера оно надо, если не имеет смысла
Что бы не ебаться с созданием объектов, и что бы изолировать реализацию, так и тестить удобнее. Вот сам подумай, тебе удобнее сделать:
PresentersPersistanceSingletone.getInstance().getProfileScreenPresenter(RetrofitSingletone.getApiInstance(), GovnoDaoSingletone.getInstance());
Или:
((MyApp) getApplicationContext()).getComponentManager().getProfileComponent().profilePresenter()
>PresentersPersistanceSingletone.getInstance().getProfileScreenPresenter(RetrofitSingletone.getApiInstance(), GovnoDaoSingletone.getInstance());
так нормальный программист все равно писать не будет)
Ну хз, насчет создания объектов соглашусь, насчет изолирования реализации - читабельность лучше не станет. Надо тебе поменять что-то в модуле для сетевых запросов - тебе лезть хз куда надо. А если вдруг тебе надо два объекта одного класса - надо через аннотацию @named ебашить, которая тоже головной боли может добавить. А если вдруг после всего даггера в коде что-то не компилируется, то реально сложно отследить, что именно не так, так как тебе точная строка с ошибкой не покажется и тебе надо уже по всем компонентам и модулями лазить высматривать, где ты проебался
Всмысле заняться нечем? Мне надо под эту хуйню тесты написать.
>А если вдруг после всего даггера в коде что-то не компилируется, то реально сложно отследить, что именно не так, так как тебе точная строка с ошибкой не покажется и тебе надо уже по всем компонентам и модулями лазить высматривать, где ты проебался
Ебать. Что за чушь я читаю? Даггер всегда явно говорит где ты соснул.
AsyncTask не создает каждый раз отдельный поток. В зависимости от версии они выполняются или на одном потоке последовательно или на пуле потоков. Для версий старше 4.0 это один поток. Можешь спокойно ебашить асинками. Так как на новых версиях все асинки по умолчанию выполняются последовательно то если операции долгие используешь втроеный пул потоков асинк таска - executeOnExecutor с партаметром THREAD_POOL_EXECUTOR. Или наварачиваешь свой пул.
Понял. Спасибо, анончик
ПЕРЕКАТ https://2ch.hk/pr/res/1110463.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1110463.html (М)
Это копия, сохраненная 8 февраля 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.