Это копия, сохраненная 27 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий тред тут:
https://2ch.hk/pr/res/762039.html (М)
Коротко о главном:
1) Мобильная разработка - это весело.
2) Android Studio & Java - легитимный набор, проверенно временем и поддерживается гуглом.
А также о неглавном:
3) PhoneGap/Ionic/Titanium/ReactNative - имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити.
4) Xamarin - мультиплатформенная разработка. Попытка серебряной пули на C#. Довольно популярный. Куплено Microsoft. Теперь есть бесплатная версия.
5) BugVM (RIP RoboVM) - идейный наследник ксамарина, а теперь уже и его часть но на Java. Учитывая что Microsoft убила RoboVM, встречаем опенсорсный BugVM.
Отдельного упоминания стоят:
1) Kotlin - Java от JetBrains, новый и стильный язык, куча синтаксического сахара прилагается, есть стримы и делегаты. Хотите писать на котлине? Добро пожаловать в JetBrains и Avito.
Где брать инфу:
Интернет-ресурсы
1) http://developer.android.com/index.html
Наша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта.
2) http://stackoverflow.com/
Пользуюсь чаще чем первым сайтом. Можно найти практически все.
3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже.
http://startandroid.ru/
и
http://developer.alexanderklimov.ru/android/
Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить.
4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять.
5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.
Книги, их никто не читает, но все советуют только одну
1) The Busy Coder’s Guide to Android Development - в отличии от остальных книг она обновляется, а так как ведро не стоит на месте а хуярит семимильными шагами, то я бы и не советовал другие книги.
А теперь, так как заебали уже всех, гайд для:
>"Я хуярил на делфи 5 лет назад а теперь хочу вкатится в андроид":
Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush или codingbat.com.
Можно Эккеля "Философия java" почитать.
Или Хорстманн "Java. Библиотека профессионала" до 7 главы.
Что тебе нужно понять в самой жабе.
Энтри лвл.
1) ООП - сам принцип нужно именно понять, так как ооп язык.
2) Типы данных. Примитивы и ссылочные.
3) Структуры данных - Массивы/коллекции - без них никуда. Полезно почитать про алгоритмы работы коллекций и их сложности.
4) Дженерик типы, они как раз юзаются в коллекциях.
5) Классы/интерфейсы и все вытекающие.
Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.
Дальше
6) Потоки ввода/вывода (streams). Не путать с тредами(threads).
7) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.
8) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.
Уже сделаешь что-то нормальное.
Дальше.
9) Работа с Sqlite, нужна будет в любом случае.
10) Работа с json.
Привет клиент-серверка.
Пишите в треде что добавить
Чего?
telegram.me/AndroidChan
Т.к. внутри фрагмента нельзя переопределить onBackPressed.
Ява там на уровне 1.5 по большей части. Бери примеры, дрочи их, советуйся с документацией.
Можно, но будет через жопу 100%. Самый нормальный вариант если на js это ReactNative.
Тебе сюда короч: https://2ch.hk/pr/res/774895.html#775047 (М)
А куда же без него? Но я говорил про IPC, Prarcelable, Bundle, Loader, Intent.
Да ОП, либо твоя шапка - говно, либо тред полон дегенератов.
Для личного развития.
Каникулы, да?
Из шапки пора пидорнуть всякую шелупонь в стиле js. Алсо в шапке сразу отправлять игроделов в /gd, а "хочу писать на питоне/хаскеле/другое говно" нахуй.
Поэтапный гайд тоже какой то странный, сделать ссылку на dev.android.com более заметной, а то ее не осиливают найти.
Стихи о весне.
JS лучше пока не трогать, ибо непонятно куда ReactNative выведет.
Тем более есть Clojure/Kotlin/Scala/TypeScript/... компилируемые в JS.
Лучше бы запилить FAQ из тупых вопросов (типа >>775205 )
> кложур, скала, тайпскрипт
Если они есть, это не значит, что на них нужно писать. Кому он будет нужен на рынке со своей скалой вместо джавы и котлина.
Тебе нужен свой лаунчер в котором выставлена опция "никого не пускать мимо меня", гугли, все в документации есть
Понял, этого может хватить, впрочем в статье, которую я нашел, все-таки советуют свой ROM мутить, посмотрим сколько готовы за это заплатить.
Можно замутить лаунчер с системными/root-привилегиями.
Я не уверен что ты осилишь собирать андроид из сорцов (это 50гб под одну сборку и собирается он минут 30 + установка на телефон).
А ведь нужно будет еще найти сорцы всех драйверов, конкретно под твою модель телефона и встроить их в сборку.
Посмотрим, но если там так много геморроя то хуй я буду этим за 2к грязных бумажек заниматься.
Поподробнее пожалуйста, каким образом апликуха становится лаунчером? И значит ли это что кроме нее нихуя больше не запустится?
Где почитать?
А из сорсов собирать ведро это уже высшие материи.
Лаунчер сделать это самое простое http://stackoverflow.com/a/8250581
А вот что-бы с него нельзя было уйти это уже хаки и многие из них не работают без системных привилегий.
кароч, запили апп, который мониторит у кого в округе установлен такой же апп и стоит статут готов попиздеть. Захотелось тебе попиздеть, запустил апп, в радиусе км поискал чуваков, кинул им стикер yo, beer.
ну или придумай там приминение, например где сейчас барыга находится
Бля, ето топ!
Дохуя глобально для портфолио.
Что делать-то? Комп новый покупать? Ну не пиздец ли?
запилите легитимный набор костылей для Kotlin.
Я уже пересаживаюсь потихоньку. За 2 дня еле как все подключил и замутил пару активити.
В общем работает:
Realm + stetho
dagger 2
KotterKnife (лол)
пока все. На джаве я охуевал с прикольного плагина Android PostFixCompletion но щас не могу найти.
Lombok потерял необходимость.
Ну а так все уже зинатулин и его немецкий дружбан вроде пишут на них - думается можно уже перекатываться по полной (или я слоупок?)
> легитимный набор
> еле как все подключил
> замутил пару активити
> Realm
> stetho
Твоё мнение очень ценно для нас.
Я и сам могу его написать, но нахуя мне это для ведроид портфолио?
>>775511
Збс, я тебе не про цену говорю а про работу.
Вот скоро ещё Gradle с груви на котлин перекатится, Петька, вот тогда заживём!
Это бесполезная хуйня и трата ресурса.
Какой в пизду фулстек? Люди которые 5 лет хуярят могут идти в фулстек, а не долбоебы с хуйней опыта.
Особенно для бекенда на джаве, там вообще пизда.
Нет, на иос не хуярю, но в планах на будущее когда сделаю для себя золотую середину архитектуры под ведро. Еще в планах научится клепать вьюхи с крытми анимациями и тд. Все остальное и так приходит с опытом.
нет
Скорее всего он уничтожиться неизвестно когда гарбадж коллектором из памяти.
Но юзать его после ондестроя нельзя.
Пощади, нахуй тебе все версии ведра? Размеры тоже нахуй, если не долбоеб то и так все резиновым будет верстаться.
А если учишься то проще купить бомжеведроид в довесок, заодно увидишь насколько он медленнее.
Ага, сдаю я такой проект заказчику, а он на своем планшете запускает 4 ведра, а не пятого и нихуя не работает. Клевые у тебя советы.
Так ты проект под ключ пишешь что-ли?
Тестеров нету совсем? Вообще тебя ебать это не должно, а заказчика.
Ну я же не для себя приложения планирую писать. А фрилансить. И ебать это должно именно, что меня, заказчик должен получать рабочий продукт.
Все равно без эмуля можно даже не приступать. Ну вот как они могли так проебаться с этим. Неужели амд настолько не распространенный проц, что на него всем так насрать. Мечту мне сломали, пидоры, я приложения хотел делать.
Хз, я писал под два телефона первую апликуху и все ок было. Потом общие правки занимают хуйню времени на самом деле.
> Вот скоро ещё Gradle с груви на котлин перекатится, Петька, вот тогда заживём!
Зачем? В градле бывает код, который сложнее хэллоу ворлда?
Через проксю зайди, сайт генимотион какогото хуя роскомнадзор забанил, так он живой.
>если не долбоеб то и так все резиновым будет верстаться
Как стандартными средствами задать относительные размеры шрифта?
А это и нинужно, больше экран = больше контента. Нестандартными: 1. sdp 2. PercentRelativeLayout с собственной TextView, которая подгоняет textSize под высоту.
> KotterKnife (лол)
Им дали язык который можно расширять как угодно и при этом юзать стандартные java библиотеку,
нет они продолжают тащить говно из прошлой жизни.
Сложный вопрос, но после этого обещают хотя бы рабочее автодополнение в gradle-скриптах.
Хочу сделать веб-приложение для андроида. Точнее, приложение, внутри которого просто открывается сайт.
Да, это не круто, но тем не менее.
Пытался установить intel xdk - но мне пишет, что ХР не поддерживается.
Я сделал через эппгейзер - получилось 4 мегабайта.
И я думаю, 4 мегабайта за что? За ссылку? Или там внутри браузер?
Короче вопрос в том, стоит ли заморачиваться с этой хренью для моей задачи?
И может есть еще сервисы, где могут такое вытворить без добавления рекламы и прочего говна?
Если привлечь ПРОФЕССИОНАЛА для этой задачи, во сколько мне это обойдется?
https://developer.chrome.com/multidevice/webview/gettingstarted
Берешь и ручками делаешь. Хотя на фрилансе за 1к сделают за пол часа.
Почему бы не использовать библиотеку, которая себя отлично зарекомендовала?
В андроиде моджет нет, ноу меня знакомый сейчас переводит с мейвена на грейдл сборку проекта где часть на джаве, часть на дотнете и часть на плюсах. Ну и котлин удобней груви.
Ок, все, понял.
тогда ещё вопрос. Поток порожденный во фрагменте создает ещё одну ссылку на объект фрагмента? А то просто у меня нет объяснения тому что после онДестроя в потоке можно взаимодействовать с объектом фрагмента
Смотря как его порождать, но у тебя вероятней всего inner class, так что да, имеет.
> Поток порожденный во фрагменте создает ещё одну ссылку на объект фрагмента?
Если есть замыкания, то да.
> нет объяснения тому что после онДестроя в потоке можно взаимодействовать с объектом фрагмента
Где связь, какое "взаимодействие"? onDestroy это просто метод в фрагменте, вызов его никак не влияет на GC.
С объетом ты не можешь взаимодействовать после вызова у него finalize()
небось тебе тоже советовали: "да пох на java, сразу туториал по ведру читай и клепай"
Ты боишься что она будет переоткрываться?
По умолчанию метод getReadable/getWritable хранят ссылку на базу отданную при прошом вызове и возвращают ее же.
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/database/sqlite/SQLiteOpenHelper.java/#58
Так что в простейшем случае можно просто постоянно дергать getWritableDatabase
и всегда будет возвращаться один и тот-же экземпляр SQLiteDatabase
В примерах и нескольких открытых приложениях в каждый метод работы с базой передавали эту самую базу. Когда начал писать мне это показалось излишним.
Я одним глазком смотрел на имплементацию, и вроде как это понял. Но подумал, что полагаться не стоит.
Надо было хотя-бы документацию по этим методам посмотреть
> Once opened successfully, the database is cached, so you can call this method every time you need to write to the database.
https://d.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#getWritableDatabase()
Как сделать так, чтобы мой листвью, когда дойдёт до конца, подгружал с других страниц? Есть какой совет/мануал, мож кто стакливался?
Ты бы лучше разобрался, как это без библиотеки делать, раз такие вопросы задаешь.
время сдачи поджимает, вот и спросил.
Да нет, не в том дело, я просто не особо преставляю что на ней должно быть ^_^
типа такой херни, но обыно она с цветом по material palette. Щас найду более похожий на то о чем я говорю.
https://dribbble.com/shots/2161437-Day-025-Contact-Profile-Screen/attachments/396854
Вот более приближенное, но опять с фоткой
https://dribbble.com/shots/2509591-Material-Profile
https://dribbble.com/shots/2232652-Twitter-Card
Попробуй setRetainInstance(true) и инициализируй карту в onCreate
Я просто начал сохранять все данные карты в локальное хранилище и доставать их оттуда при смене конфигурации/еще какой-нибудь бяке
Я не сталкивался, но попробуй apply() вместо commit() при сохранении преференсов.
Дело в том, что я не вручную записываю туда данные, а с помощью метода persistString у Preference.
https://developer.android.com/reference/android/preference/Preference.html#persistString(java.lang.String)
>>776201
Отслеживать из одного процесса другой? Не очень понял, что ты имеешь ввиду.
Да нет, просто в логи кинуть до и после записи в одном процессе и в другом, т.о понять есть ли одновременные запросы на запись проблема или нет. А так лучше может использовать какой-нибудь велосипед который сам в очередь кинет ?
Не резолвится адрес очевидно. С портами на серваке все хорошо? Может быть в кафешке какая-то бяка стоит.
Дровбл с клиппасом и тенью. Может своя вьюшка.
Не, запись не асинхронная, главный процесс сохраняет что-то в SP, другой процесс после этого читает, но читает старые данные (до произведенных изменений главным процессом). Если перезапустить приложение, то тот второй процесс уже будет читать данные, оставшиеся после предыдущего запуска, а новые опять до перезапуска не прочитает.
Аноны, а как свое приложение-то запустить с помощью Genymotion?
При нажатии на зеленую стрелку "Run" пытается запуститься встроенный эмуль, а не Genymotion.
Попробуй просто в браузере поработать. У меня такая ошибка, когда требуется браузерная авторизация для доступа в Интернет и поэтому нет нормального DNS-сервера.
А ты в какой момент создаешь объект преференсов? Если до записи, то ты уверен, что их интсансы синхронизируются через файл обсервер?
скорее всего на сервере, но пхпшник-имбицил не признает своих ошибок даже если ткнуть его в них носом, а чтобы носом не тыкали - просто не даст смотреть свой код
>что после того как тред вышел
Всмысле завершил свою работу?
>объект который он присвоил в до того не инициализированное поле будет доступен в основном/другом треде?
Не всегда, читай про volatile.
Ну я межпроцессорщину не копал, но мне кажется инстансы шаред префов не синхронизируются в твоем случае даже после commit. Попробуй каждый раз создавать инстанс префов заново, чтобы он считывал с диска.
в том то все и дело что в браузере оно пашет на ура, даже запросы из браузера успешно работают через онлайн сервисы для отправки пост-запросов
Ну блин, эта ошибка говорит, что приложение просто не может найти сервер. Так какая тут сервер-сайд ошибка может присутствовать, если с ним вообще никакого контакта нет? Сохраняй запросы из кафешки и смотри, в чём там отличие.
Если не резолвит и только в приложении, то как может быть пхпшник виноват? Он вам днсы настраивает?
> Всмысле завершил свою работу?
Да. Про volatile читал. В memory model джавы плохо смыслю, подумал, если она синхронизирует данные после завершения, нет смысла volatile ставить.
Попробуй из приложения достучаться к чему-то другому, если получится то или на сервере хуйня. Хотя я вот помню когда женимоушином пользовался - он после гибернейта нормально не восстанавливался, и нерезолвил вообще все.
>В memory model джавы плохо смыслю
Это уже высшая материя. Я не уверен что в разработке под ведро она нужна.
>если она синхронизирует данные после завершения, нет смысла volatile ставить
Преждевременная оптимизация зло. Старый добрый и понятный volatile не замедлит работу твоей апликухи настолько чтоб это было заметно.
Одного этого видео достаточно что бы отбить все желание копаться в этом
https://www.youtube.com/watch?v=iB2N8aqwtxc
>>776456
Вы же дегенераты.
Плохо когда информации мало, когда ее нет.
Тут же страна вам блджад дала - бери, читай, смотри, изучай. Не хотят. Хотят двачевать капчу и задавать друг другу одни и те же вопросы, и по кругу.
Не шкварь китано об свой высерный пост.
>>776473
volatile это стандартная хуйня, чего тут такого?
В общем не выебуйся сверх меры там где это не нужно.
Да я не ебу. Сломалось в студии что-то или в твоём проекте. Переустанови студию и шиндоуз.
Визуальным редактором всё равно никто никогда не пользуется. Открой вкладку xml и будет тебе счастье.
Почему не пользуются? Это удобнее и быстрее. И с чего ты вообще взял, что не пользуются?
Поддвачну анона выше, тоже не пользуюсь им еще со времен эклипса ADT.
Да прям сейчас открыл последнюю идею и там пикрил, да и пох, всегда на нексусе смотрю.
Ой, "серьезное дерьмо" было адресовано статье про память. Вы не подумайте.
можно смотреть бд через браузер и не тащить ее себе на комп.
Стехо есть не только для sqlite но и для realm
Понял, спасибо.
Ебать же всякой хуйни понапридумывали под ведро, хер все осилишь в одно ебало найти
ой бля, давно известно что нельзя шарить инфe в преференсах между процессами http://stackoverflow.com/questions/22129717/mode-multi-process-for-sharedpreferences-isnt-working
https://github.com/Destiner/Dense
Чет ты опоздал малясь. Тут начинается переход на svg потихоньку, да и был плагин под студию, который в последней версии отвалился.
Нахуя? Они и так и так кэшируются внутри FramgnetManager,
а в твоем случае так вообще оба будут видимы на экране одновременно.
А зачем тебе их хранить? Создавай в getItem по позиции, аргументы закинь во адаптер.
http://android-arsenal.com/details/1/3745
или есть альтернатива получше?
Calligraphy
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">#FFC107</item>
<item name="colorPrimaryDark">@color/main</item>
<item name="colorAccent">#000000</item>
<item name="android:background">@color/light_red</item>
<item name="android:divider">@color/main</item>
<item name="android:buttonStyle">@color/main</item>
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
<item name="android:windowBackground">@color/light_red</item>
<item name="android:headerBackground">@color/light_red</item>
</style>
<style name="MyTitleTextStyle">
<item name="android:textColor">#000000</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
В онстопе даже сто т
Псевдокодом я представляю себе это так:
DialogFragment dialog = new DialogFragment;
inflate(dialog.layout);
int i = dialog.getresult();
Или всё же блядское шаманство с миллиардом строчек кода, для того чтобы блядь число ввести, - это норма?
junior-кун
Чето в голос.
Правду пишут. Си уже утонул. Джава вот-вот утонет. JS - единственный современный язык программирования. Крупные компании его даже для разработки драйверов и встраиваемых систем используют. Так что, тут лишь вопрос времени. Пока еще много старого говнокада написанного на древних языках. Но не за горами время, когда Товальдс перепишет ядро на JS'е.
Шутки шутками, но Lua уже в ядре NetBSD http://netbsd.gw.com/cgi-bin/man-cgi?lua+4+NetBSD-current
>>777645
>>777588
Расслабьте булки.
Как вообще можно сравнивать джаву и шарпы с однопоточным говном?
Вот так, например, можно
> GoDaddy uses Node.js for both front-end and back-end projects, and they recently rolled out their global site rebrand in one hour thanks to the help of Node.js. Before that, the company primarily used .NET and was transitioning to Java.
Или вот так можно
> Because of the way Node works we can attach debuggers, and set breakpoint steps through the code. If you wanted to debug these groovy scripts in the past, you would make some code changes upload it to the edge layer, run it, see if it breaks, make some more changes, upload it again, and so on
И так
> When I’m working with the team, and whether it’s Java or C# developers, they’re doubling a little bit on front ends; so they’re not experts but once they switch to the stack where Node.js is used in the back end, they’re more productive because they don’t have that switch of context. I see this pure joy that it brings to them during development because JavaScript it just a fun language that they can use
https://blog.risingstack.com/node-js-examples-how-enterprises-use-node-in-2016/
Bump
DialogFragment то тебе зачем? Используй обычный диалог.
Если запариваешься с обработкой поворотов, то тогда ДА там будет много кода.
> JS - единственный современный язык программирования.
Sad but true.
К сожалению, скоро всем придется кушать слаботипизированный хлебушек, и гадать, что же вернет t[0], если t определена как var t = {0: 'A', '0': 'B', '': 'C'}?
Бля ну идите нахуй со своим самоподдувом, вот как ваши слова станут явью тогда возвращайтесь.
В PHP аналогично. С перлом не работал. Но вроде там строки почему-то считаются примитивным типом, и нет разделения на целые и вещественные числа. Единственный пригодный для скриптинга язык - Python с его строгой типизацией.
>Python с его строгой типизацией.
Сарказм?
Про типы данных перла смотри perldoc -f ref
> Builtin types include:
SCALAR
ARRAY
HASH
CODE
REF
GLOB
LVALUE
FORMAT
IO
VSTRING
Regexp
> You can think of ref as a typeof operator.
Попробуй присвоить значение одного из этих базовых типов другому - не получится, типизация строгая.
В перле нет типа значений "строка".
Любой скаляр может хранить одновременно строку и число, например. Или reference.
$foo = dualvar 10, "Hello";
$num = $foo + 2; # 12
$str = $foo . " world"; # Hello world
http://perldoc.perl.org/Scalar/Util.html
То есть он точно так же сосет у Питона, как JS и PHP. Только гуманитарий не может понимать принципиального различия между строкой и числом.
> Internally Perl calls a scalar SV (scalar value), an array AV (array value) and a hash HV (hash value). In addition it uses IV for integer value, NV for numeric value (aka double), PV for a pointer value (aka string value (char*), but 'S' was already taken), and RV for reference value
> The internal relationship between the Perl data types is really object oriented. Perl relies on using C's structural equivalence to help emulate something like C++ inheritance of types. The various data types that Perl implement are illustrated in this class hierarchy diagram. The arrows indicate inheritance (IS-A relationships).
http://cpansearch.perl.org/src/RURBAN/illguts-0.49/index.html
>принципиального различия между строкой и числом
Только питонист не может не понимать что это удобно когда язык понимает в зависимости от контекста - нужно ли здесь взять из переменной и использовать число 5 или слово "пять".
Ну и какой смысл был придумывать какой-то "скаляр", если очевидно, что 0.0, 0 и "0" (не говоря уже о ссылочном типе) совершенно разные вещи, не имеющие ничего общего.
А вот массив и строка очевидно являются вариациями одного и того же типа данных (списка).
> К сожалению, скоро всем придется кушать слаботипизированный хлебушек, и гадать, что же вернет t[0], если t определена как var t = {0: 'A', '0': 'B', '': 'C'}?
> массив и строка очевидно являются вариациями одного и того же типа данных (списка)
Про CAR и CDR расскажи.
> Про CAR и CDR расскажи.
Лиспоговно не нужно, но при желании легко реализуется и для массива, и для строки.
> какое положение занимают сервисы?
Это часть модели. Модель - источник данных и логика для их обработки (алгоритмы).
> Как обеспечивать взаимодействие вьюхи и сервиса: напрямую или через презентер?
Модель работает с сервисом, получая и отправляя данные. Презентер обрабатывает ввод пользователя, связывая интерфейс (вид) и данные (модель).
В общем-то, в википедии все расписано:
https://ru.wikipedia.org/wiki/Model-View-Presenter
И про модель здесь:
https://ru.wikipedia.org/wiki/Model-View-Controller
Обрати внимание на раздел "Наиболее частые ошибки". Модель должна быть активной, т.е. она не только предоставляет данные, но и обрабатывает их. Это и чтение/сохранение в базе, и отправка/прием по сети, и разнообразные вычисления.
Сука ну что за тупой вопрос поколение мемасов блять.
Если это говно еще работает и тебе оно нравиться, сиди в нем.
Загугли как делать просто подчеркивание, а потом закинь в selector drawable state_focused.
При перевороте
Кроме очевидного "получить курсор со всеми элементами и посчитать их количество"
написать ури по которой считает
> 2016
> Использовать ContentResolver для чего-то кроме кросспроцессорного обмена данными
Ты с нашей планеты...
Если там твой же ContentProvider то в чем проблема?
>>778244
Алсо, почему порог вхождения в андройде считается ниже?
> планирую полностью посвятить языкам. Выбираю между джавой ee и андройдом
Начни с английского.
> почему порог вхождения в андройде считается ниже
Кем считается? Ниже чем что?
Тогда научись искать информацию. В сети куча статей, отзывов и мнений, которые изложены грамотно и на английском.
Почему ты отвечаешь не на то, что я спросил, а на вообще какой-то левый вопрос?
>Мало ли в нуфак-треде не все сидят
По этому и не сидим, что бы не читать постоянно в про вкатывающихся нюфагов.
Иди там литературу на лето прочитай или еще чего-нибудь полезного сделай, в общем пшел нахуй.
Проходи тогда мимо или пиши модеру. В чем проблема? Или ты считаешь, что без твоей критики никто не обойдется?
лол, еще один
Проблема в том, что ты банально не можешь изучить материалы в интернете по твоему вопросы. На quor'e не раз уже выкладывали алгоритм обучения, что и сколько учат. На Хабре было. Я молчу про треды-да, потерялись. Но ты банально не можешь в поиск.
Я спросил, что мне выбрать. А не как мне учить то или иное направление.
Вместо того, чтобы дать совет или пройти мимо, ты начинаешь агриться, а теперь еще и выясняется, что ты читаешь жопой.
Я не знаю, из-за чего вы все такие злые. Начальник выебал или сроки горят? Мамка гонит на работу? Или у вас чсв просто до предела само по себе.
потому что среднестатистический пакистанец может позволить себе больше андроидов на свою зп, чем айфонов (+ мак компов на которых разрабатывать).
+ в ios - это си, а осилить указатель не каждый китаец сможет бляцкий свифт
То есть мне надо сделать класс который хранит позицию, там ещё у меня расскрывающиеся вьюшки в ресайклере, то есть плюс массив в тот класс и сделать его parcelable? И это норм или хуйня?
Прошу вашего совета. Работаю не в области программирования (sql во все поля), но тут подвернулась одна стажировка в формате очно-заочно, джава. Учил ее год назад немного. Так вот, годная ли эта идея? На стажировке весь будет курс до девелопера java se. Я понимаю, что она мне нужна. Но так к чему я. Засесть за эту стажировку, а затем дропнуть на моменте 1.7-хороший план? Спасибо ^^
Для себя начал учить пыху, как план Б, но что-то мне подсказывает джава/андроид-план А+, лол.
Слегка смущает разговоры про утопию джавы. Хотя, знаомый синьор из mailru говорят, что это временно, хайп на жс пройдет.
Я не прогал на пхп, но слышал, что джава лучше пхп в плане того, что имеет больше отношения к непосредственно программированию.
>>778442
>Слегка смущает разговоры про утопию джавы.
Что за разговоры? Я ничего подобного не слышал и мне похуй. Вон, андроид выпускает новые версии, поддерживают популярные фреймворки на джаве, какая ещё утопия джавы, лол?
НУ ТИПА ДЕСКТОП ЖС ВСЕ СОЖРЕТ И БЕКЭНД
> Нет ли какой-то возможности прятать от ВК статус того что юзер сейчас пользуется сервисами ВК
Есть.
Мне кажется активити, просто если он будет во фрагмнетах, то но будет участвовать в анимациях между ними, что не всегда выглядит логично.
Kate Mobile.
пачиму в андраеде все так не систематизированно????? у меня бамбит.
Нет, ну серьезно. Куча разных файлов для описания слоев-хуев. Синтаксис постоянно меняется в новых версиях. Нуеманорот
> вызвать окошко для ввода числа и получить его в мейнактивити
Решается за 10 минут же. Может просто, программирование — не твоё?
Причём тут программирование? Дело в том что непонятно нихуя как это делать и инфы как это сделать нигде нету. В шарпе блядь одной строчкой вызываешь примитивную хуйню для ввода, двумя уже делаешь хуйню для ввода со своим интерфейсом. А тут блядь чтобы число ввести нужно написать ёбаный миллиард строчек кода причём шанс сделать миллиард косяков в этой куче кода стремится к 100%
> В шарпе
А, с этого и надо было начинать.
Ты прав, программирование действительно ни при чем. Просто ты тупой.
Пиши под xamarin тогда, хули. А еще лучше, уйди в js или php тред.
Там всё будет просто и понятно.
пиздец, заработало.
А я вот решил изучить пхп. Почитал основы и меня просто затошнило. Даже не знаю почему. Просто блять затошнило.
ты дурак?
По сути нет.
Как будто она будет жрать меньше. Ведь андроид студио основана на ней.
Норм, сам в ней сижу, но не факт что она будет заметно быстрее AS.
Лол странное чувство. Синтаксис один и тот же по сути. Но прочел про то, ка включать файл, пр опространство имено, да и просто настройку БЛЯЯЯЯЯЯЯЯЯЯТЬ
Блять, я кривой с утра.
> Ну типа на работу если устраиваться, то там уже хуй, а не эклипс, наверное.
Ты сначала устройся
Это большая проблема в дс что ли?
Скажем, по ярлычку на файл -> открыть паинтом, стартует mspaint, по ярлычку на другой файл стартует второй отдельный mspaint, а опять по ярлычку на первый файл первый mspaint просто переходит на первый план.
singleTask,Instance привязываются к классу, а не к интенту. У них будет вызван onNewIntent.
Сделать как хочешь ты будет проще всего фрагментами.
Твой любимый текстовый редактор + консоль.
1) в гугле точно видел
2) пробуй bottomsheet из дизайн либы
3) айосовская навигация свайпа на ведре нахуй не нужна
> 3) айосовская навигация свайпа на ведре нахуй не нужна
Не пользовался айосью. Два предыдущих приложения для редита, которые я юзал, переход в тред и обратно делали обычным методом туда-обратно активити. Свайп как здесь показался гораздо удобнее. Для связных действий, мне кажется, ок.
Давай по делу.
Тебе кажется. Не тащи ios паттерны (там это "из коробки") в android.
В ios нет самопроизвольного-разрушения конроллеров системой,
поэтому они могу держать весь стек в памяти и спокойно по нему перемещаться..
>эмулятор
Купи китайфон, эмулятор будет лагать неимоверно, раньше он и на хороших компах лагал.
Хуй тебе. Я не хотел кодить, но надо ведь
Ставить на место тех, кто хотел бы на горло надавить.
Твой трэш что в коде позорный go on, holla bitch
Я для тебя не Страуструп, а Бьёрн Иванович.
да
Если не singleTop и не добавлены определенные флаги в интент, то да.
Оговорка, сам этот таск переходит на первый план.
Интент от лаунчера, например, всегда new_task несет.
> When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in.
Я пытаюсь освоить андроид-студию на нетбуке Intel Atom с 2GB RAM. Так что у тебя еще не очень-то и много проблем. Алсо, легко гуглятся способы небольшого увеличения производительности типа как не индексировать файлы Thumbs.db, строго оффлайновая сборка грэдлом и т.д.
Есть Эклипс (бери версию 4.0 и выше) с плагином ADT. Местные обитатели закидают говном, но обучиться программированию можно и в Эклипсе, если у тебя катастрофические проблемы с железом (и нет денег на новое). За неимением гербовой бумаги пишут на простой, как говорится
Разница между текущей и выбранной из истории версией файла / директории. Все в одном текстовом файле.
https://en.wikipedia.org/wiki/Patch_(Unix)
>1
А что, если лисиитеиы сделать контейнерами для фрагментов, фрагменты инициализировать в onbindviewholder, а по клику делать фрагмент реплейс с анимацией? Сильно лагать будет?
>Чет ты опоздал малясь.
>Тут начинается переход на svg потихоньку
Ну когда перейдём до конца, тогда можно смело будет выкидывать. Думаю, ближайшие пару лет доминировать будут растровые драваблы (особенно в случае сложных картинок).
Суть в чём - на главном экране есть Toolbar с ним. Кроме того, в этом экране хранится фрагмент с контентом. При переключении на другой фрагмент, ActionBarDrawerToggle выключается и уступает место андроидовской кнопке "назад" на всё том же Toolbar-е (так надо). Суть в том, что иконки у кнопки назад DrawerToggle-а и у дефолтной кнопки назад несколько отличаются.
Пик 1 - вверху с DrawerToggle-ом, внизу - дефолт.
Пик 2 - стили приложения.
Оборачивай на всех стадиях рекурсивно все контролы drawable шейпом с обводкой - где-нибудь увидишь маргины/паддинги/оффсеты.
@drawable/border:
<shape><stroke android:width="1dip" android:color="#00aa00"/></shape>
@layout/some_layout:
<View... android:background="@drawable/border"
или MyActivity.java:
mView.setDrawableResource(R.drawable.border)
рекурсивно по всем вьюгруппам или если знаешь схему, то конкретно.
Для такого небось есть чего-нибудь поудобнее, но я не в курсе.
Ну или выведи все размеры контролов в обоих состояниях.
Вполне, а какие еще варианты могут быть? Можно во время инициализации того модуля / части приложения которая этими делами заправляет.
был альтернативный вариант: при формировании списка файлов проверять статус сервиса загрузки.
Запущен не надо удалть, не запущен надо (название загружаемых файлов помечаю по особому)
Короче, пихай туда, где это логичнее всего смотрится. Поставь TODO с примечанием "а адекватно ли это здесь выглядит (проверить через неделю/месяц)". Через неделю/месяц переоцениваешь и понимаешь какой ты мудак.
Ебать какое у тебя продуманное приложение. А не проще ли просто взять и переложить вину на юзера? Если обрубил приложение, значит, сам дурак.
Чисти чисти!
это тестовое задание. пытаюсь изъебнуться
> Бля, поставил приложение, оно теперь ест 1 гб, а у меня в телефоне только 4. Разработчики чините, а пока поставлю единицу
Если загрузка файла обрубится на полпути, то файл всё равно появится в ФС, просто будет скоррапчен, очевидно же.
Разве? Даже когда загрузочный сервис ОСи остановить принудительно на полпути, то файл всё равно гуглится в файловой системе
Я так и написал.
> файл всё равно гуглится в файловой системе
> гуглится в файловой системе
> гуглится
Значение знаешь?
Вот я нубас-программиствонаби
У меня есть идея игрульки под ведроид, где в основном в коде нужно обрабатывать логику, интерфейс текстовый, связей клиент-сервер нет
Посмотрел синтакстис явы, не понравилось, нравится яваскрипт
Я могу как-то написать свое приложение на яваскрипте или мне все равно придется освоить яву? Советовали React.js, но как я понял он для разработки Front End'a. Нид хелп, короче
Можешь освоить минимум джавы для написания обертки в виде WebView (в таком случае ты либо пишешь хтмли/джсы вставляя их в вебвью, либо вебвью указываешь свой где-то фронтенд). Есть еще Cordova / PhoneGap.
P.S.
> явы
> яваскрипт
> яваскрипте
> яву
в чем проблема сделать обработку логики на сервере и пилить через webView весь фронт ?
Усложнение и создание зависимостей там где без этого можно полностью обойтись.
Полностью обойтись хочешь - можешь на жабе написать. Просто быстро и удобно :)
Хуярь на сокетах, например, сокет.ио
Icepick
пардон, затупил, какая-то херня выскакивала
пардон, не уследил, но суть думаю понятна. Что может наиболее быстро сохранять и предоставлять большое количество инфы
http://stackoverflow.com/questions/19540715/send-and-receive-data-on-udp-socket-java-android
Почти что первый линк, и вроде как есть все что нужно
За линк спасибо, но в этом примере есть сервер. А по моему ТЗ сервера быть не должно. Клиент вводит локальный айпишник и текст сообщения, а клиент (тоже андроид) получает его.
Для тех, у кого на работе заблокирован двощ, или хочется что-то обсудить в реальном времени давным давно был создан a|)0ndroidANUSjabbP`,erPUNCTUM>>3ru - это антипод чата в телеграмме, здесь только адекватное общение адекватных людей.
Такова особенность jabber - там собираются гики, школота отсвеивается засчет высокого порога вхождения
Интересно, как быть с потернными пакетами в UDP?
Перепосылка, перепосылка, пока не получим ответа?
Об этом пока не думал. Главная задача сейчас - хоть как-то это дело заставить работать.
Я думаю это заебись решение. Просто перепосылай через каждые 250 мс, чтобы не жрать проц, пока не придет ответ от другого собеседника, что Я ПОЛУЧИЛ.
И няшный индикатор о получении сообщения прикрути.
> пока не придет ответ от другого собеседника, что Я ПОЛУЧИЛ
Для этого есть tcp, а не велосипеды в 2 пакета.
Контейнер v7.RecyclerView - никаких атрибутов, адаптер отдает v7.CardView - на нем только маргины.
Выставить app:cardElevation и такой же app:cardMaxElevation (не знаю зачем он даже) пробовал.
Если создать новый проект в свежей студии, то там всё хорошо: есть отдельно test, отдельно testAndroid. Всё работает из коробки.
Что делал я: Добавил testCompile 'junit:junit:4.12' в app/build.gradle, создал папку test, в ней пакет con.example.myapp, добавил простой юнит-тест (пикрелейтед). В контекстном меню папки test выбираю Run test... -- студия предлагает запустить эмулятор или подключить устройство. То есть, не то. Запускаю ExampleUnitTest из его контекстного меню, получаю ошибку Class not found: "com.example.myapp.ExampleUnitTest" Empty test suite.
В свежем пустом проекте всё работает. Как лечить?
Потому что ты не понимаешь сути recyclerview. Явно указывай тем итемам, у которых кнопка не видна, значение invisible.
Вроде нашел ошибку. Получается что при отрисовке итемов используется не дефолтная разметка, где всё gone по умолчанию, а текущее её состояние. Те сделали в одном итеме visible, при дальнейшей отрисовке в остальных тоже будет visible
Всё, разобрался уже
у тебя вьюхи переиспользуются, сделай else gone
Уебывай в js-тред со своей парашей.
Появилась идея реализовать библиотеку для просмотра БД прямо в приложении.
Будет представлять собой отдельную активити, которую можно запустить из любого места в приложении. При её открытии можно будет просматривать и редактировать таблицы, создавать кастомные запросы.
Пригодится при отладке приложения, избавит от необходимости скачивать базу с эмулятора или телефона, чтобы ее просмотреть.
Полезная штука, стоит ли делать?
Мути сразу REPL на android процесс + SSH что можно было просматривать локальные каталоги.
Туплю, ты не мог бы конкретный пример привести. Очень недавно познакомился с rx
BehaviorSubject<String> subject = BehaviorSubject.create();
subject.filter(x -> x != null).subscribe(x -> Log.d(x, x));
subject.onNext(null);
// No log
subject.onNext("1");
// Log 1: 1
subject используешь вместо переменной.
спасибо
Сделал свои ObservableProperty поверх Subject, мне нравиться.
А вот
> единый weakreference пул объектов, зеркалируемый в базу данных
мне кажется перебором.
Если сделать свой CustomView для всей игры, тогда получается что нужно самому реализовывать интерактивность объектов внутри.
Можно ли сделать рендеринг всей игры сабклассом AbsoluteLayout, а каждый объект сабклассом View? Можно ли будет рисовать прямо на AbsoluteLayout, или нужно будет для каждого видимого элемента создавать View и засовывать внутрь?
Короче, как сделать правильно с минимумом пердола?
Ну мне тоже самое почти надо, плюс ещё немного рисования по поверхности самого ViewGroup. Попробую сегодня тоже сделать.
myRetrofitService
.getUsers()
.map( usersAnswer -> usersAnswer.getUsers() )
.????
.subscribe( user -> saveUser(user) )
Спасибо.
Вики-то я прочитал, но многие вещи всё равно сложно понять, пока сам не попробуешь.
>>782622
Еще вопрос: юзеры будут обязательно доставлены в Subscriber именно в том порядке, в каком они были в списке, так ведь?
Вот здесь уже я меньше уверен, но flatmap распараллеливает обработку, за максимальную параллелизацию как раз и отвечает второй параметр. Выдаст то он тебе их последовательно, но обработаться они могут и не последовательно.
Ну такая штука ведёт себя правильно, порядок всегда сохраняется
Observable.just( Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) )
.flatMap( integers -> Observable.from(integers) )
.doOnNext( integer -> System.out.println(integer) )
.subscribe( integer -> { } );
>>782767
А вот тут наоборот: http://stackoverflow.com/a/36133313/4451232
И я что-то пока не пойму, почему так..
потому что observeOn не на дефолтном потоке
> Почему могут не приходить пуш-сообщения с GCM на бродкастресивер
Потому что они должны приходить на GcmListenerService?
Нет, если приложение закрыто, то они приходят по бродкастресиверу и передаются на листенер. У меня так работает на девайсе с 19 версией и на эмуляторе с 23.
com.google.android.gms.gcm.GcmReceiver - вот так называется, но можно и свой сделать.
> сколько времени потребуется на изучение Java
Гугли "java за 24 часа". Долбоебушка учи Kotlin.
)))
Хорошо живёт.
Да не, я просто совсем за мобилками не слежу.
Ты попробуй хоть какой-нибудь кастомный язык в RN засунуть. В данный момент это адский гемор.
А нахуй вообще сейчас, вот когда RN завоюет мир тогда и приходит.
А то может и вообще не понадобится, вон котлиновцы и сами на iOS нацелились.
У меня сейчас самописная дура, которая мапит pojo в и из базы, без нее я бы писал кучу дополнительного кода. Хочу от того и другого избавиться. SQL_TO_SE_PIATOE_DESYATOE тоже надоели.
Ты можешь использовать орм, которые работают поверх sqlite. Но если хочешь, могу про реалм рассказать, когда домой вернусь.
Я смотрел на гриндао, но мне лень генераторы и т.п. запускать. Релм на вид симпатичнее всех показался.
Расскажи.
- С realm ты теряешь с кросплатформенности (там весь код в .so либах)
- У тебя разрастается бинарник
- Он не дает координального прироста скорости
- Там такой-же убогий синтаксис запросов как и во всяких sqlite ORM
- Его нельзя портировать на iOS через Intel MOE или BugVM (а sqlite-ORM можно)
Аноны, можно сделать так, чтобы в дейтапикере диалог скрывался сразу после клика по дню, чтобы не жать ещё раз ОК?
Описываешь Article extend RealmObject, пихаешь в нее RealmList<Comments> и радуешься жизни. Но это если комментарии прилетают вместе со статьей. Если отдельно, то при повторном получении тебе нужно будет вытащить все нужные комментарии и запихнуть в обновленную модель, иначе они затрутся, т.к. в обновляемой модели будет comments = null. Либо положить хуй, и хранить комменты отдельно с указанием номера статьи.
> хранить комменты отдельно с указанием номера статьи
Это в релме делается полем на связную модель или полем лонгом на id этой модели?
Двачую вот этого. Реалм для неосиляторов, которым ЭСКЬЮЛАЙТ СЛОЖНА.
Через id, иначе вытаскивать будет сложнее, да и от лишней нагрузки на реалм избавишься.
в мелкую фирму, даже на минимальную плату трудно найти джуновское место по знаниям джуна. обычно они ищут более продвинутого чувака за более низкую плату или я не прав? листал вакансии джуном там или требования что видно ребятам надо не чувак которого стоит подучить/подстраховать а просто они ебали платить. или я проебываю какой то важный момент?
Зарегистрируй аккаунт в гугл плей и сделай что-нибудь, что будет не стыдно показать на собеседовании.
вот была проблема но вспомнить не могу, помоему беда оказалась в том что в сигнатуре нельзя использовать и text
Вот была проблема но вспомнить не могу, по моему беда оказалась в том что в сигнатуре нельзя использовать и text и title одновременно.
>GLSurfaceView
Нууу такое. Опять же нужно знать OpenGL, вообще я нашел что libGDX очень даже умеет рендерить fbx.
Либы есть.
Джава джун в треде. Хочу задать платиновый вопрос. Читал и в гугле, конечно, но хочется из первых уст, так сказать.
Так вот, многие из вас занимаются фрилансом? Маленько заебался от тырыпрайза, хочу поднимать деньги на берегу моря (манямир), чтобы хватало на сромную жизнь.
Из коробки вроде нет.
Хотя на последнем IO в виде "материал-дизайн для программистов" говорилось о каком-то best-practics.
Меня это когда-то так заебало, что сделал кастомный ViewGroup, который "закруглял" все дочерние элементы.
Типа композиция - лучше наследования :)
нашел этот гайд
https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html
все проде норм кроме
Configure the module build.gradle to create "hello-android-jni" shared lib.
Select Android Studio "Project" pane > "Gradle Scripts" > "build.gradle (Module:app)", add the following inside the "model" block, after "buildTypes" block.
пишу это в градл и он ругается меня
ndk {
moduleName "hello-android-jni"
}
найдите где мой рак. хочу вылечить
Тогда проще: static переменная, которую будешь инициализировать при запуске.
я все понял. ссоре за флудец.
но почему гугл делает цпп код через анус? нельзя было нативные апки на цпп придумать?
Дохуя переписывать придется и еще дольше отлаживать и тестировать.
Такая сложная интеграция C/C++ кода из-за Java.
ну я уже врое в принцып jre вьехал и рулю байтовыми смещениями и асм вставками. Но почему понимая что нативный код быстрее java оставлять в 2016ом java основой андройда? просто выпилить нативную либу по типу gtk и рулить из-за неё всем происходящим.
ну не скажи.. мне потребоволось пара дней чтобы вкатится в native хотя это не брейнфак, но и не php/1с
При этом метод onComplete вызывается в UI потоке.
Так вот. Эта ебань портит мне всю малину.
Т.к. я запихнул это в Loader, который решает, когда грузить из кеша, когда грузить из инета и когда обновлять кеш, то
deliverResult вызывается не в UI потоке и следовательно приложуха падает при обновлении гуя.
Как теперь быть:
1) Из-за этой поебени в onLoadFinished обновление гуя обвернуть в runOnUiThread(new Runnable() { } )...?
2) Обвернуть deliverResult во что-то, чтобы он, сцуко, вызывался в UI потоке? Но как это сделать?
PS: Обмазаться rxjava, ретролямбдами, ретрофитом и еще какой-то хипстерской поебенью не предлагать
> нативный код быстрее java оставлять в 2016ом java основой андройда?
Так хватает же производительности за глаза.
Игры как пилили на плюсах, так и пилят.
хотя да.. ты прав. железа и для рендеринга на js хватает. что это я. но просто внутренний перфекционист хочет дать пиздов дивелоперам которые заныкали натив ппц как
Еще не стандарт, не пизди.
Три года дерутся с фрагментами уже, а АрИкс пока далеко до стандарта.
Ретролямда так вообще синтаксический сахар.
> Три года дерутся с фрагментами уже
Потому что там есть почва для споров, связанная с их жизненным циклом.
> АрИкс пока далеко до стандарта
Все топовые студии разработки в России его используют.
> синтаксический сахар
Это хороший сахар, или любишь в 10 строк описывать простейший листенер?
Мы скоро начинаем учить разработку под андроид. ЭТО ПИЗДЕЦ. Мало того что этим говном невозможно пользоваться в реальной жизни, так еще теперь и писать под него надо.
Эх, придется с закрытыми глазами тестить, потому что от одних анимаций уже воротит.
Делай по способу 2)
Вот так: https://gist.github.com/anonymous/8026b338bd56f222de8b8e2acaa91d58
В итоге deliverResult вызовется из Main вскоре после вызова: handler.sendMessage(handler.obtainMessage(0, ...))
>>786288
>>786314
>>786343
Господа специалисты, обосрамс.
Элементарная же задачка у того хуя с малиной.
Пикрелейтед Activity, отображающая данные, полученные из Интернет.
Как видно, здесь присутствует две проблемы:
1. Если в TextView присутствует текст, написанный подобным шрифтом, выравнивание текста автоматически изменяется на правое
2. Если посмотреть на поле с электронным адресом, видно, что домен и имя ящика поменялись местами. То же самое в строке с именем - сначала должно идти имя, а затем национальность в скобочках, на скрине все наоборот.
Такое впечатление, что андроид автоматически выводит строки с подобным шрифтом справа налево. Можно как-то отменить такое поведение?
Ты что, сука, ты чо? Арабы, индусы, евреи читают справа на лево, у них такая письменность, андроид все верно делает, а ты должен еще картинки на право поставить. Вообще почитай про rtl.
>Все топовые студии разработки в России его используют.
Еще не показатель на самом деле, вот когда 51% разрабов перекатится, тогда станет стандартом.
>Это хороший сахар, или любишь в 10 строк описывать простейший листенер?
Да успокойся уже, за тебя всеравно все генерируют.
Да, они все криво читают, наверное. Просто переключись на какой-ниюуждь rtl язык и охуей как меняются другие приложения.
Ну что можно написать в принципе на любом серверном это понятно, а где более удобная интеграция не совсем понятно.
К примеру т.к. опыт написания не под мобилки не богатый я не могу решить куда совать нос, в джаву, котлин, го?
> где более удобная интеграция не совсем понятно.
Интеграция с чем? Ты отдавать json можешь хоть на бейзике.
Джава в любом случае нужна.
Не нужна. Все нормальные кодеры давно перекатились на котлин + на нём сейчас пишут большинство современных проектов, на работе от тебя будут требовать знание котлина, а с джавой ты будешь сосать писос.
[code lang=java]
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text");");
}
[/code]
А мне надо занести вебвью с картинкой и текстом. Что писать в таком случае?
Подтолстил конечно, но в принципе согласен, писать на жабке в 2016 - себя не уважать.
Кстати со дня на день должны async/await (как в C#) в режиме preview подкатить.
местный котлин просветитель
ну ссылку и текст я буду текстовым типом заносить
а для картинки типо этот блоб испольщовать?
я конечно хуй с горы, но рав даты всякие и картинке в бд лучше не хранить. генери для них имена, храни в какой-то папочке, а в бд только ссылку на них
>писать на жабке в 2016 - себя не уважать
В чем проблема? Просто, надежно, все работает.
Думать надо над приложением, его архитектурой, дизайном, связью с бэкендами, перформанс боттлнеками - а не тем как 3 простых понятных и надежных строки кода превратить в 2 сложных, непонятных и с багами имплементации котлина.
Вы с async и await втрое больше ошибок синхронизации теперь наплодите.
Не забудь поверх папочки реализовать свой собственный слой транзакционного хранилища.
> Думать надо над приложением
Это правильно, только вот в Java ты больше озабочен написание бойлепрлейта
и скролом многостраничных getter/setter это я утрирую конечно.
> превратить в 2 сложных непонятных
Kotlin на порядок проще Scala, проще в использование/привычние Clojure,
а это те языки на которые укатилось все прогрессивное сообщество JVM бэкендеров.
По сложности он на уровне Swift, который становится основным языком iOS.
Подытоживая:
1. Java == бойлерплейт + NPE + лишняя мутабильность + слабая расширяемость
2. Время уговоров прошло.
Кто хочет уплывают в светло будущие миноносце "Kotlin" нарабатывать опыт.
Остальные могут оставаться на острове Java - по вам скучать не будем.
За пределами рашки кто-нибудь вообще пишет на Kotlin? Очередной мертворожденный язык типа Ceylon от RedHat'а. Для борщехлебов есть Scala и Clojure, а тупым макакам достаточно обычной жабы.
>только вот в Java ты больше озабочен написание бойлепрлейта
Ты допускаешь принципиальную ошибку здесь.
Ты исходишь из двух неявных предположений, оба из которых неверны
1. Скорость разработки существенно зависит от скорости ввода символов с клавиатуры
2. Экономия размера кода кому-то что-то дает полезного
Я же говорю о том что экономить надо затраты мыслительной активности, они ограничены в течение рабочего дня и восполняются только отдыхом и сном.
Простой, понятный, привычный код читается просто и легко, на уровне рефлексов, какой бы бойлерплейт он не был, мыслительной активности на сеттеры не тратится, ну так же как ты не тратишь ее на мысленное слова "бойлерплейт" из букв, из которых он оно состоит - это происходит у тебя рефлекторно, правым полушарием, с того момента как ты научился читать. А вот если я сейчас тебе влеплю с десяток сложноподчиненных предложений на три абзаца каждое, да еще состоящих из слова типа "эпистемиологическая герменевтика" - ты после них резко захочешь сходить перекурить, выпить чаю, и прогуляться полчасика, а то и пораньше домой пойти.
http://pasted.co/8a76f17b
Делал по примеру, из первого коммента:
http://stackoverflow.com/questions/8267928/android-rest-client-sample
onPostExecute выполняется на главном потоке.
Ну е мое, уже базовых вещей не знаю. Кто тебя из нуфаг-треда выпустил?..
Иди читать мануалы: https://developer.android.com/reference/android/os/AsyncTask.html
Есть рут активити, а как ораганизовать грамотно переходы по фрагментам, хранить бекстек где то? Как выставлять правильный тайтл на акшенбаре при переходах туда-обратно?
Может есть у кого устоявшиеся правила для такой организации.
Экшонбар ебашь прямо во фрагменте тулбаром в лейауте, все равно дровер будешь делать наезжающим на экшонбар, зато от гемороя лишнего избавишься.
Стек хранит фрагментменеджер сам.
Не знаю что ты хочешь, но на втором окне надо:
pref.edit().clear().commit();
иначе это два разных действия (одно без коммита, второе пустое)
Там же когда в AS/Idea добавляешь, надо просто ввести ключ от кейстора, а алиас можно выбрать из списка.
Да, да. Сори, я довн выбрал не тот кейстор.
Получается если через Editor делать то можно в стек пихать действия и коммиттить где-то в конце, а без едитора нужно в одну строчку делать. Пиздос. Могли хотябы хинт сделать, мол допиши в конце коммит, ибо иначе нихуя не будет. Как например подсказка что в Toast'е надо в конце написать .show() чтобы он появился.
>Могли хотябы хинт сделать, мол допиши в конце коммит, ибо иначе нихуя не будет. Как например подсказка что в Toast'е надо в конце написать .show() чтобы он появился
У меня такая есть.
Ищи сертификат дурашка. И нахуя ты от нас хеши прячешь, думаешь мы их подбирать будем блять? Подозреваю что ты подписывал дев сертификатом, а он имеет свойство обновляться. Ищи бекапы системы например, может если вы в команде работали у кого-то может быть такой же дев сертфикат, я свой шарю что бы не записывать в гугл/пейсбук/вк дополниттельные. Но если не найдешь, то пизда тебе - новая приложуха в маркете.
Ты debug-билд что ли залить хочешь?
> Подозреваю что ты подписывал дев сертификатом
Тоже об этом подумал. Если так, то пусть страдает.
Какой Android перегруженный - это пиздец.
В сторону REST API. А делай хоть на пыхе, хоть на руби, питони, джаве, ноде, скале...
Открываешь build.gradle своего модуля (app/build.gradle по дефолту) и начинаешь выкупать что там написано. В блоке android {...} будет блок signingConfigs {...}, короче будет что-то примерно такое: http://pastebin.com/q0Da1xVF c некоторыми отклонениями разумеется.
Обрати вниманеи на signinConfigs, по существует дефолтный который там не написан, который используется для всех buildType'ов в которых явно не указан (release signingConfig указан в release buildType'е). Вот этот самый дефолтный и использует сертификат который лежит в ~/.android, который в свою очередь иногда обновляется. Вот возможно ты выкладывал в маркет приложуху подписанную дефолтной конфигурацией. Как избежать? Правильно сделанная схема деплоя, по четкому нужен билд сервер с CI, но если ты в какой-то говно конторе, как я, нужно просто не делать хуйни и делать бекапы.
Не пизди, ведроид реально требует думать о такой хуйне, о которой в гейосе даже никто не слыхал, и тысячи костылей.
TL;DR Подписывать приложения release-сертификатом.
Далее у этого активити уже свой стек фрагментов.
Если по клику на элементы drawer'а ты будешь запускать новые activity, то у них уже не будет отображаться navigation drawer. Или нужно будет его в каждой activity вручную добавлять.
Так что, это плохая идея.
И что дальше? iOS — мертвая платформа?
ОП и успешные аноны, к вам вопросы!
Я вкатываюсь в андроид разработку, сделал пару своих приложений в студии, ничего особенного, плюс аналоги наверняка есть в маркете. Но думаю что на базовом уровне я шарю и что-то сделать могу.
Как мне найти работу, если официального опыта у меня нет, раньше шабашил веб фрилансом и питон подработками? Пишу в компании, а меня вежливо посылают нахуй.(
Ваши советы пожалуйста.
Выкладываешь исходники на Гитхаб, описываешь каждое своё приложение в резюме, отправляешь его в нормальные компании.
Стоит ли проходить остальные разделы, коих там дохуя прямо сейчас? Или лучше уже начать клепать говно и пропускать в продакшн и по ходу дела проходить остальные туториалы по мере необходимости?
К слову о себе, программировать на джаве я умею- я сейчас где-то на уровне Middle Java Developer на работе в офисе. А цель- изучить андроид и уйти во фриланс под музыку из Джанго Освобожденного.
Какого хуя бля, у меня бомбануло!
Ничего что в 8 джаве можно так же в одну строску написать:
List<Product> products = orders.flatMap(o -> o.getProducts.stream());
Селфикс
List<Product> products = orders.flatMap(o -> o.getProducts.stream()).collect(Collectors.toList());
Рад что не только я это понимаю
А вот и некрофилы подъехали.
ну почему так грубо? я с нежностью вспоминаю свое начало в программировании 15 лет назад, олимпиадные задачки, кабинет информатики. эх
в онрезюме метод какойнить типа setuptoolbar и в нем сеттайтл/бинды итд
Да, я на работе при любой возможности использую стримы, потому что почти всегда они в тему и код более читабелен. Возможностей уже было овердохуя и на всех код ревью все всегда были довольны.
А если ты не кодишь в стиле который близок к функциональному программированию то ты лох и целка.
читабельность кода ухудшилась не сильно, интерпретируешь ты его тоже успешно. зачем заморачиваться?
Да, я сейчас буду весь продакшн код на двач постить, только чтобы тебя убедить.
на самом деле я недавно ради прикола написал диктант для седьмого класса. 5 баллов из 12. Леша, 28 годиков
это касается только гуманитарных предметов. в точных науках я был отличником. теперь работаю в средненькой фирме и меня все устраивает. ошибочки за меня компуктер подчеркивает.
вообще недавно обнаружил что я на англе допускаю меньше ошибок чем на русском. пора съебывать
> пора съебывать
Как-то долго до тебя доходило. Еще пару лет прособираешься и уже никуда не выпустят.
>>789067
Вот это маневр, давно вам стримы завезли в андроид? Видимо у меня другой какой-то. Может у вас еще и дефолтные методы есть, ммм?
Стримов нет. на самом деле есть -- https://github.com/streamsupport/streamsupport
Но есть Rx.
> Вот возможно ты выкладывал в маркет приложуху подписанную дефолтной конфигурацией.
Маркет такие апкь нахуй посылает, кстати, не выйдет.
> Да, я на работе при любой возможности использую стримы
Двачую, делал так еще со времен Android 2.3, брат жив
Тебе уже дали ссылку на библиотеку.
А вообще, речь шла про функциональный подход. Он и в Rx есть.
Лет 6 назад, быть может.
Да, я указал. Но на KitKat получается такая шляпа. На более поздних версиях всё ок.
Только 1 вьюхе можно указать, той что в корне. Этот аттрибут немного странно вообще устроен.
а то, не жизнь а сказка!
Но эта проблема выскакивает ток с китката, а там статусбар вроде всегда есть.
Го перекатыватсья уже на 23 тред, пермишенов не будет.
Да зачем, вроде ламповее стало.
Из дебилов с платиной остался только >>789005
Кстати >>789005 если тебе нужно авторитетное мнение мидл-android-девелопера с over4 года стажа,
по твоему вопросу "двач что делать, у меня мозгов не хватает самому решить", то лучше тебе пропутешествовать на х#й.
А при чем тут котлин? Смерть EE приведет к возмущению на рынке от которого поднимутся всякие Springи и .NETы. Что в конечно счете приведет к общему ослаблению позиций джавы, котлину это ничем не поможет, только хуже сделает.
Ну пиздец, ну просто пиздец. Гугулу не стыдно за вот это? Там ничего не слышно за "принципиально новый" Андроид, что бы все с чистого листа, что бы как у людей?
> принципиально новый андроид
Хочешь две версии писать параллельно, ведь пока он докатится до пользователей в полном объеме пройдут года?
> Но эта проблема выскакивает ток с китката, а там статусбар вроде всегда есть.
На цигане можно скрывать, например.
Когда дело доходит до дизайна в Андроид приложении у меня просто руки опускаются, глаза разбегаются.
android:background="@drawable/
Эй это же обидно! Может мне весь stackoverflow прочитать еще перед тем как приступать к работе?
Все же кто-нибудь, кто не такой неадекват как вот этот >>789468 господин, помогите мне с советом. Из прикрепленного поста я не могу понять, все ли разделы туториалов проходить с developer.android.com? Раздел Getting Started вроде как по всему прошелся, но я будучи новичком не знаю, остальные туториалы- это важные вещи которые обязательно знать уже сейчас или это второстепенные конкретные туториалы под конкретные задачи?
Зачем тебе туда картинка? Там же элементы списка на цветном фоне, с картинкой выйдет перегруженным говном.
Спасибо, братан
Кстате да, мне нравилось писать под 7ку и 8ку. Единственное некоторые вьюхи было тяжело делать, а про аналог onDraw я не знал и сейчас не знаю.
Единственное, что платформа мёртвая. Уже и Микрософт на неё забил.
1)Как в ContentValues поместить несколько значения для разных строк(ну типо я пишу все значения для первой строки через .put(), а как для второй строки написать)? Была идея явно указывать айди, но как то глупо,не?
2) Для построения списка мне лучше использовать обычный адаптер или SImpleCursorAdapter? Так как данные для заполнения списка будут браться из БД.
Ты хуйню какую-то написал, я ничего не понял.
https://developer.android.com/training/basics/data-storage/databases.html
> аналог onDraw я не знал
Ахаха, а нет его.
В Andriod есть, в iOS есть, на desktop WPF есть.
А в SilverLight и WP - нет, обмазывайся стилями/шаблонами и комбинирование др вьюхи.
извините за офтопик, но при рассмотрении моей кандидатуры не возникнут ли подозрения что 90% проектов на гитхаб я выложил сегодня вечером?
И как это объяснить если будут спрашивать?
Что значит "подозрения"? Там ведь вполне явно видно, что, где и когда.
Скажи, что специально выложил на гитхаб, чтобы могли оценить твой уровень. Код на гитхабе - это твоё конкурентное преимущество, а ты думаешь, как оправдываться..
Кидай ссылку в тред, всё равно он утонул. Получишь код-ревью от лучших мировых разработчиков.
Ну так тогда эти петушки свой тред создадут, который будет ещё хуже этого. Нет?
а чисто курсор лоадером как тут
http://startandroid.ru/ru/uroki/vse-uroki-spiskom/278-urok-136-cursorloader.html
а зачем в этом примере создается класс DB? это типо класс-контракт или что то типо такого? просто я видел примеры как чисто одним классом, наследующем SQLiteOpenHelper делают БД
Я бы сказал что DB здесь в виде паттерна Repository с CRUD методами.
Это чисто концептуальная заморочка, если проще без него - можно сделать в одном файле.
Мамка твоя бойлерплейт.
Про абстракции, разделение ответсвеноостей ты не слышал?
Ты можешь не использовать ContentResolver на совсем простых проектах. Но с увеличением сложности тебе придётся вручения реализовать то, что уже готов в связке ContentResolver + ContentProvider.
Плюс другие компоненты системы предполагают наличие ContentProvider.
https://youtu.be/CKjFfcFelrI
Что там реализовано, чего нельзя самому написать?
> Плюс другие компоненты системы предполагают наличие ContentProvider.
МЕЖПРОЦЕССОРНАЯ ПЕРЕДАЧА ДАННЫХ
ищу фриланс подработку или запилюсь в проект к кому-нибудь.
lectri*&icasANUS,C=gmailPUNCTUMMI`com
Это копия, сохраненная 27 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.