Двач.hk не отвечает.
Вы видите копию треда, сохраненную 10 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
76 Кб, 900x760
456 Кб, 1024x576
Разработка под Android тред №10 #619370 В конец треда | Веб
ИТТ продолжаем обмазываться коллбеками и форматировать XML.

Коротко о главном:
1) Если ты учил джаву но не хочешь пилить тырпрайз до конца жизни - добро пожаловать в андроид разработку.
2) Android Studio & Java - единственный легитимный набор, теперь стал еще легитимнее.
3) Xamarin -для богатых и ебанутых виндовсопоклоников, медленно и невыгодно, но на шарпах.
4) PhoneGap - не пробовал но осуждаю, как и весь не-web на js. На самом деле изменил свое мнение, всякие поделки на js имеют место быть, и более того, в наших же интересах клепать несложные проекты на нем, так как объективно быстрее сделать юи.

Где брать инфу:
Интернет-ресурсы
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

Предыдущий тред: http://2ch.hk/pr/res/596036.html (М)
297 Кб, 1181x1181
#2 #619578
Привет, анон. Хочу вкатиться в программирование, но боюсь начинать. Знаний у меня нет никаких и поэтому я уже 100500 раз пытался забросить идею начать программировать, но мысли меня мучают и места не даёт покоя. В общем, я понял, что мне нужно изучить Джаву, а потом вкатываться в андроид разработку. Мне нужно помощь, анон. Во-первых расскажи как вкатывался сам, о свих начальных условиях и подводных камнях. Сколько время тратил, кокой был первый проект и получается ли на этом деле зарабатывать. Моя цель - создавать приложения для ведроида, но я совершенно не знаю с чего начинать. Подскажите сперва как начать вкатываться в джаву, книги, видео уроки, которые вы реально на себе проверили и которые годные. Я слышал про джава-раш и про "философию джавы" Эккеля. Как понять, когда вкатываться в андроид? Спасибо большое, если адекватно ответите.
#3 #619600
>>619578
Прочти философию java.
Прорешай на javarush все задачи, на которые хватит баллов, это всё полезно.
Далее бери подписку на месяц и вкалывай, решая остальные задачи.
Придумай себе проект на андроид, к примеру клиент для двачей.
Читай то, что в ОП посте и фигачь.
Как толтко твой клиент сможет просматривать хотябы фурряч - приходи сюда, мы будем твой код хуями крыть.
#4 #619603
>>619578

Я начал кодить без знания Джавы и ведра вообще. Немного знал ООП, и всё. Синтаксис джавы - си-подобный, так что это проблем вызывать не должно. Просто взял и без задней мысли начал делать. Да, у меня всё ещё выходит говнокод, и я постоянно исправляю старые косяки из-за того что узнаю новые особенности платформы, но как по мне так такой спонтанный и бессистемный подход в некотором роде лучше. Учиться на своих ошибках - дорого стоит, но и понимание более фундаментальное приходит, когда исправляешь эти ошбики. А обучение по книжкам чаще всего у всех отбивает желание продолжать изучать какой-либо язык на стадии написания хеллоуворлдов и сортировок. Просто берешь в зубы стаковерфлоу и ведроидовскую документацию и начинаешь изобретать велосипеды на костыльной тяге, после чего переписываешь их до тех пор пока они не превратятся в изящный мотоцикл.
#5 #619622
>>619603

Я не знаю Си и вообще ничего не знаю. Начинать с Си надо? Или сразу брать видеоуроки по созданию какой-нибудь игры на ютубе и пытаться повторять?
#6 #619623
>>619622

Ты вообще раньше не кодил, даже на паскале в школе/шараге/вузике?
#7 #619630
>>619623
Можно считать, что не кодил.
#8 #619632
>>619600

Спасибо.
#9 #619633
>>619630

Тогда предложение порешать задачки на джавараш и почитать книжки приобретает смысл.
#10 #619637
>>619633

Окей.
#11 #619639
А почему о себе ничего не рассказываете? Какой опыт? Выгодно ли на яве вообще писать? Какие проекты делали?
457 Кб, 1680x988
#12 #619808
Оп в треде, спасибо что тред создали, а то я приболел малость.

>>619639

>Какой опыт?


Опыта около 10 месяцев. Как раз в первый месяц работы первый тред и создал.

>Выгодно ли на яве вообще писать?


Тупой вопрос на самом деле. Конечно выгодно блять, один из самых популярных языков, в тройке точно. И оплата как на остальных примерно. Можно хуярить как бекенд так и ведроид. Для фронтенда нужно будет все равно дрочить джаваскрипт.

А сугубо для ведра джава незаменима ну котлином мб разве что. Вариант еще на джаваскрипте писать, но там говорят может оказаться много пердолинга. Но для простых проектов советуют. Но опять же, там 3-4 популярных технологии на js и они все друг от друга отличаются.

>Какие проекты делали?


Делал 3 клиент серверки.
Первый проект сам клепал на стартапе за гроши, там многому и научился. Мое портфолио собственно. Правда стартап сдох, благо на плеймаркете осталось.
Второй делал месяц, успел только наклепать общую архитектуру и классы для работы с ебанутым Json-rpc. Но сьебал на другую работу.
Сейчас пилю говносоциалку, допиливаю за каким-то идиотом, такого хуйового кода я с первого курса не видел. Но проект мертвый и не оживет и от этого печально, пока нечем гордится.
#13 #619809

>Анончики, приглашаю вас в конфу в телеграме



>Конфа общая как для обычной джава, так и для ЕЕ



>https://telegram.me/joinchat/Bbfo5gUiYnQn8tWtl0OlrA



Хуй знает что это такое, но вот принес с прошлого треда.
Алсо, я сижу в конфе в скайпе, там конфа под 300 человек, разумные вещи говорят, да и опытные все, правда туда без инвайта не попасть.
#14 #619872
>>619808

Выходит, что на деньги с плей маркета жить можно?
#15 #619880
>>619872
Хз, у меня постоянная работа 10 месяцев. Жить можно с успешных апликух, а ты их сделай сначала. У меня не вышло.
#16 #619886
А что за хайп в последнее время вокруг того, что Android и Google от Java отказываются? В чём прикол?
#17 #619891
>>619886
Переход на OpenJDK
#18 #619892
>>619886
Поскорее бы на Go переехали.
Может не придется делать вставки из кода на С.
#19 #619906
>>619892
Хуйни не неси.
#20 #619920
>>619906
Че за наезд бля?
#21 #619945
>>619880

А в чём сейчас работа заключается?
#22 #619948
Кто пишет приложения на андроид на андроиде?
#23 #619952
>>619945
Писал же, делаю клиент для говносоциалки.

>>619920
Ну ты сам подумай что значит переход на другой язык.
#24 #619954
>>619952
Точно, сорри и спасибо, что ответил.

Кстати, относительно этой новости... Как быть теперь?
#25 #619980
>>619948
Нет таких.
#26 #620070
>>619954

>Кстати, относительно этой новости... Как быть теперь? Забить хуй и не ебать мозги проблемами которых нету.

#27 #620071
>>620070

>Кстати, относительно этой новости... Как быть теперь?


Забить хуй и не ебать мозги проблемами которых нету.
фикс
#28 #620076
>>620071

Спасибо, что помогаешь, хороший человек.
#29 #620079
>>619370 (OP)
Хотел посмотреть в Wireshark-e как проходит аутентификация одного андроид приложения (интересуют реквесты к закрытому API и ключи, которые оно отправляет).
Девайсов на андроиде нет, поставил Bluestacks, Wireshark видит его трафик, но пользы от этого мало - реквесты все идут через HTTPS.
Люди как-то получают нужные реквесты и ключи. В какую сторону смотреть? Реверс инжинирить приложение? Если да, то как? Если нет, то что посоветуете?
#30 #620096
>>620079

>Люди как-то получают нужные реквесты и ключи.


Я не понял.

>>620076
Всегда пожалуйста.
#31 #620130
>>620096
Есть REST API, через который приложение отправляет команды на сервер. Его адреса и json-параметры не задокументированы, так как подразумевается, что команды будут отправляться только через само приложение.
Разумеется, с каждым реквестом шлется ключ авторизации (я пока не знаю, генерится ли он кодом в приложении или другим веб-сервисом). Но я знаю, что люди как-то достают эти эндпойнты и ключи, и получают доступ к сервису напрямую, без приложения. Ну и я хочу того же самого.
Перехватить пакеты Wireshark-ом - не вариант, так как API работает только через HTTPS. Остается реверс-инжинирить? И если да, то что там самое удобное для этого под андроид?
38 Кб, 500x481
#32 #620199
Анон, ты мне поможешь?

Рисую пикчи с помощью(или правильно говорить в?) канве canvas.drawBitmap();
Скалирую канву canvas.scale();
рисую сетку canvas.drawLine();

И в результате не все линии рисуются, КАК НАСТРОИТЬ ПРАВИЛЬНЫЙ РЕНДЕРИНГ?! Так чтобы рисовались все линии и ни одна не пропадала.
В интурнетах только какие-то вопросы по рендерингу видео нахожу.
#33 #620203
>>620199
Пробовал включать антиалиайзинг?
#34 #620204
>>620203
Нет, я просто просил ранее что-бы хоть намекнули в какую сторону покопать.
Спасибо, поищу/попробую сейчас.
#35 #620206
>>620204
Возьми paint, который ты рисуешь сетку и сделай в конструкторе: new new Paint (Paint. ANTI ALIAS FLAG)
31 Кб, 500x446
34 Кб, 500x487
#36 #620209
>>620206>>620203
Да, спасибо.
Прописал .setAntiAlias(true); и получилось типа того что хотел.
#37 #620218
>>620209
>>620199
Губы - очень очень. Кроме сисек конечно.
#38 #620314
>>620130
Если я правильно тебя понял то тебе нужны все стринги из апликухи? Т.е. эндпоинд куда шлется, названия методов и тд?
Если да то реверс инжинирингом ты их получишь,они не обфусцируются. Реверс инжиниринг сам нагуглишь,там работы на минут 15.
А вот ключ авторизации другой вопрос, скорее всего она в шаредах хранится, но далеко не факт, он может на сессию создаваться. Но да скорее всего в shared preferences ищи.
#39 #620327
>>620314
Пишу как долбоеб, только что проснулся.
#40 #620383
>>620079

> Реверс инжинирить приложение?


Именно.

> Если да, то как?


Baksmali, дебаггер. Всё по классике.
#41 #620694
Анон, дробить проект на несколько модулей хорошая практика или нет? Вот допустим я написал view-писечку, и вынес её в отдельный модуль и всякая разметка для неё в layout не болтается.
#42 #620750
>>620694
Хороша практика выносить все кастомные View в отдельный модуль, но только в том случае, если это крупный проект и все эти кастомные view можно использовать где-то еще.
В остальных случаях смысла нет.
Просто именуй всё понятным языком, к примеру разметку для своих вьюшек именуй со слова: custom_
#43 #620821
Парни, поясните за WebView. Я ТЗ пишу, мне нужно приложение, которое будет фактически только браузер внутри себя показывать. Объясните, можно ли настроить его так, чтобы при встрече определенных ссылок на сайте, при переходе по ним ссылка открывалась не внутри WebView, а предлагалось открыть в любом брауезере.

Причем пометка у такой ссылки могла бы быть data-..., то есть html5-атрибут. Другими словами, мне нужно сделать так, чтобы в WebView какие-то ссылки помеченные атрибутом data-... открывались в родном браузере телефона. Можно ли это вообще сделать? Если да, то не могли бы сказать куда копать, чтобы в ТЗ я сразу написал "смотреть в сторону NNNN"
#44 #620851
>>620821
Ты ведь можешь получать текст ссылки при нажатии, проверяешь в нем нужный тебе атрибут и делаешь intent с этим урлом. вылезет стандартный диалог через что открыть
#45 #620860
>>620851
Текст ссылки это анкор, href или весь тег "a" с атрибутами? Если весь тег с атрибутами, это было бы идеально, потому что я смогу через data-... отмечать часть ссылок.
369 Кб, 2048x1536
#46 #620871
Народ, как устанавливать библиотеки в проект андроид студии?

Вот, есть у меня *.jar файл, что с ним делать, чтобы использовать в своём приложении?
#47 #620882
>>620860
>>620821
Нет, вызывается shouldoverrideurlloading, куда передается только url. Про анкоры не уверен. Я бы лучше добавил в путь ссылки get параметр, например external=true, тогда бы все ссылки отправлял в браузер с таким параметром. Ну или наоборот intenal=true.

>>620871
Закидывай в папку lib. Нужный в градле пункт уже прописан, просинхронизируешь проект и готово.
#48 #620885
>>620882

>Закидывай в папку lib. Нужный в градле пункт уже прописан, просинхронизируешь проект и готово.


Т.е. просто в папку, где сама студия установлена?
А как просинхронизировать?
156 Кб, 1920x1080
#49 #620898
Программач, пытаюсь осилить по совету анона из прошлого треда (спасибо, кстати) либу android-async-http, но что-то делаю не так, пример c их сайта (скопировал один в один из https://loopj.com/android-async-http/doc/ ) выдаёт какую-то хрень вместо ответа: I/System.out: [B@a1d543c

Запрос проходит успешно, но почему-то вместо нормального ответа выдаёт эту строчку. Если в примере поменять сайт и заменить хттпс на хттп, то ничего не меняется.
#50 #620900
>>620898
Макака не даёт вставить нормальную ссылку, по ссылке первый же пример АсинкХттпкКлиент в списке слева.
#51 #620949
>>620898
Java надо учить. Вполне нормальный ответ.
http://pastie.org/10676234
#53 #620975
Пачаны, помогайте, а то уже пена изо рта от бешенства идет. Как совладать с поганым GridView? У меня в View, который я добавляю в GridView есть Спиннер, и когда я скроллю GridView, то значение у спиннера постоянно сбрасывается! Как совладать?
#54 #620987
Можно ли как-то заменить список в DataPicker дней/месяцов, чтобы использовал в своих целях эту вьюху?
Или лучше просто несколько NumberPicker сделать?
#55 #620990
>>620987

>месяцов


Месяцев
#56 #621008
>>620990>>620987
Ладно, забудьте.
50 Кб, 588x261
#57 #621009
Можно ли вот этот говнокод на компактный заменить?
#58 #621013
>>621009
В данном случае нет.
Вангую тебе лист нужно было делать а не 13 вьюх.
2 Кб, 92x109
#59 #621019
>>621013
14 вот таких галок чекбоксов
#60 #621021
>>621019
Перебери все дочерние элементы и заполни список.
14 Кб, 214x311
#61 #621024
>>621021
Угу, эт предлагали. Но ведь у меня лист в листе и листом погоняет, а кроме текстселектов ещё и чекбоксы. СЛИШКОМ СЛОЖНО.
#62 #621026
>>621024
Скинь скриншот того, как это выглядит в живую.
4 Кб, 134x129
#63 #621033
>>621026
В режиме дизайна отображаются и те и другие, просто для возможности обращения к ним. При запуска же чекбоксы заменяются чектекстом в зависимости от положения свитчера ниже.
#64 #621035
>>621033
Не обращайте внимание на то что чектекст в радиобаттоном, его позже уберу оставлю только текст, так что радиогруп не нужен.
#65 #621043
>>621035
Что это ты такое страшное мутишь?
#66 #621055
>>621043
Лел, а ничего не напоминает?
56 Кб, 520x509
#67 #621077
>>621055
Баян напоминает.
#68 #621080
>>621077
Там же подсказка даже - ПИНЫ
#69 #621082
>>621080
Ардуина небось?
#70 #621084
>>620882

> вызывается shouldoverrideurlloading


Спасибо, няша. Очень помог
81 Кб, 600x464
#71 #621085
>>621080
Сделай для TQFP100
#72 #621093
>>621082
Нет, обычный счетчик.

>>621085
А потом ещё и реализовать возможность программировать его? Ну это уж слишком.
#73 #621113
Хочу вкатиться в андроид разработку. Знания нулевые (на уровне знания сишного синтаксиса и чуть-чуть ООП). С чего начать, что читать по джаве, насколько глубоко залезать в джаву?
47 Кб, 500x271
#74 #621117
>>619370 (OP)
Как можно зарабатывать на этом деле адекватные деньги? Пусть у меня 100 тысяч пользователей в месяц, которых у меня никогда не будет. Пусть каждому из них я один раз покажу рекламку. Итого: ~1$ на тысячу = 100 долларов.

При этом средний разработчик получает в разы больше за месяц работы над приложением, которое точно не окупится.
#75 #621121
>>621117
50коп за 1 просмотр.
#76 #621123
>>621121
А, бля, я что-то подумал, что я в веге сижу и мы про стримеров говорим.
Пиздец поехавший стал.

Мало того что рекламу показать, нужно ещё и перейти по ней.
#77 #621126
>>621121
7 баксов дохуя слишком.

Может и ошибаюсь, но средняя цена за interstitial 2.5$ за 1000 в нормальных странах. Если приложение используют в каких нибудь пакистанах, будет еще меньше, около 1.5$.
Алсо может так выйти, что вообще кликать не будут, тогда CPM будет вообще маленьким. Потому и считаю 1$.
#78 #621128
>>620975
Хранить значение спиннера в модели, с которыми работает адаптер. Обновлять спиннер из getView.
А лучше почитай как ListView (GridView абсолютно аналогично) работает. Твой вопрос именно от непонимания идёт.
#79 #621129
>>621009
Можно, но не обязательно. Есть метод поиска ид по названию, дальше ты сам понял.
48 Кб, 500x388
#80 #621131
>>621113
Глубоко.
#81 #621134
>>621129
findViewWithTag?
#82 #621136
>>621134
У класса Resource. getIdentifier или типа того, поищи в доках.
#83 #621161
>>621009
Я бы на твоем месте посмотрел бы в сторону дата биндинга.
>>621024

> линеары в линеарах


Релайтив не думал сделать?
9 Кб, 563x101
#84 #621162
>>621136
Да, спасибо. Неплохое решение.
#85 #621165
>>621161

>Релайтив не думал сделать?


Эт хорошо когда под свой смартфон пишешь наверное.

>Релайтив не думал сделать?


Ммм, не задумывался. Просто сделал как знал что смогу.
381 Кб, 565x575
#86 #621219
>>621117
Бампик.
#87 #621269
Можно ли в режиме дизайна отключить обновление layout'а каждый раз при его изменении? Раздражает, что всё очень медленно работает. Студия часто вешается.
26 Кб, 546x257
#88 #621271
>>621269
Какие значения выставить?
86 Кб, 697x365
#89 #621278
https://gist.github.com/anonymous/38ab56ad90f422239974
как сделать, чтобы объекты из линеар бара располагались равномерно по его плоскости?
#90 #621310
>>621128
Совладал, но возникла новая проблема: можно ли заставить адаптер создать больше элементов, чем умещается на экране, так сказать "заранее"? У меня умещается только 2 элемента, а мне нужно получить значение с, например, четвёртого, который ещё не создан, т.к. гридвью не скроллили.
#91 #621317
>>621278
Как поделить контейнер на n равных частей?
2 Кб, 100x200
#92 #621330
Анон, смотри, JSON строка может быть такого вида:
[
true,
false,
"blabla1",
42,
{..}
]

Точный тип и структуру я не знаю, есть ли способ распарсить её корректно?
2 Кб, 100x200
#93 #621336
Анон, смотри, JSON строка может быть такого вида:
[
true,
false,
"blabla1",
42,
{..}
]

Точный тип и структуру я не знаю, есть ли способ распарсить её корректно?
#95 #621452
Хочу вкатиться в андроид разработку. Знания нулевые (на уровне знания сишного синтаксиса и чуть-чуть ООП). С чего начать, что читать по джаве, насколько глубоко залезать в джаву?
#96 #621458
>>621269
Запили конфиг своей пекарни.
#97 #621459
>>621330
В некоторых случаях можно.
#98 #621460
>>621452
Глубоко залезать.
Читать то, что в ОП посте.
Ставишь себе сложную в плане архитектуры задачу и решаешь её.
#99 #621463
А кто -нибудь карты/симки пробовал программить?
#100 #621483
>>621330
Встроенные org.json.* есть.
#101 #621557
Андроиданы, следите за руками:
Действующие лица:
MainActivity extends AppCompatActivity
SupportFragment extends Fragment // сапортный епта
WorkerFragment extends Fragment // опять же из сапортной либы

Легенда:
WorkerFragment по нажатию на вьюшку в нем делает startActivityForResult (запускается метод фрагмента, а не активти, если сорцы библиотеки не врут моим глазам)

Действие 1:
WorkerFragment цепляется в MainActivity
все чики брыки всем все резалтится

Действие 2:
WorkerFragment цепляется в SupportFragment
который цепляется в MainActivity
WorkerFragment цепляется через getChildFragmentManager
Результат приходит в SupportFragment

Вопрос какого хуя? Или это by design и родителские фрагменты должны перехватывать старты от детей и не форвардить их автоматом?

Я конечно понимаю что схема тупая, но это как бы уже после того как сделал и на такое напоролся.
#102 #621593
>>621161

>Я бы на твоем месте посмотрел бы в сторону дата биндинга.


Там вроде траблы будут с онЧек событием.

>>621021
А они там точно по порядку все? Или порядок нахуй не уперся? Он же все же лист юзает.

>>621129
А вот это годная штука, спасибо.
Только это говно затратное.
А у него тут итем листа >>621024

>>621161

>Релайтив не думал сделать?


А нахуй там рилейтив? Линеар в линеаре это удобная блочная верстка, что-то поменяешь все не пойдет по пизде. А релейтив с его идшниками та еще веселуха, и он скорее всего медленнее будет работать.
#103 #621596
>>621117

>При этом средний разработчик получает в разы больше за месяц работы над приложением, которое точно не окупится.


Ну как бы я так и делаю. Я не из тех дибилов которые работают для себя. Я бы ебловал если бы мог. А так я пока что деньги зарабатываю и скил повышаю, будет годная идея - буду делать но не во вред работе.
#104 #621643
>>621437
Да знаю я. Я хотел уточнить это ли имеет анрн в виду.
#105 #621662
>>621593

> Только это говно затратное.


Ну и что? Взялся за джаву — нечего байты ебать.
Если серьёзно, то затраты вообще несерьёзные.
#106 #621679
>>621662

>Взялся за джаву — нечего байты ебать.


Джава то тут при чем?

Это лист. В листе всякие движения жопой лучше не делать.
#107 #621735
>>621557

> Вопрос какого хуя?


Прост. Тоже с этой хуйней проебался когда то
>>621593

> и он скорее всего медленнее будет работать


Нет. Чем меньше уровней вложенности, тем лучше. Количество onMeasure вызовов уменьшается, в некоторых случаях сильно.

> It is a common misconception that using the basic layout structures leads to the most efficient layouts. However, each widget and layout you add to your application requires initialization, layout, and drawing. For example, using nested instances of LinearLayout can lead to an excessively deep view hierarchy. Furthermore, nesting several instances of LinearLayout that use the layout_weight parameter can be especially expensive as each child needs to be measured twice. This is particularly important when the layout is inflated repeatedly, such as when used in a ListView or GridView.

#108 #621743
>>621735
Уже много читал по поводу что быстрее.
На самом деле строго похуй, но линеары до какой-то там вложенности должны быть быстрее. Рейлейтив тоже со вздрочем работает.
Даже более того, есть люди которые говорят делать все блочкой, а есть те кто говорят что релейтив лучше.
Но тут я вспомню правило "преждевременная оптимизация - зло". И потому советую всем хуярить как удобно.
#109 #621746
>>621459
>>621483

>org.json.*


Расскажите подробнее, пожалуйста, а то я уже тут надумал свой парсинг писать.
#111 #621751
>>621746
>>621749
Твой json весьма интересного формата, потом расскажи нам как ты его распарсишь при помощи стандартных средств.
#112 #621753
>>621751
Так в любой либе для парсинга есть джейсон обжект, в который распарсится любой адекватный джейсон. А дальше растягиваешь его на джейсон элементы. Забираешь те которые нужны.
#113 #621770
>>621679
Ну, во-первых таки не лист.
Во-вторых можно и в листе. Опыт показывает, что даже getView можно забивать всяким говном на 150 строк — всё будет хорошо даже на старых бюджетках.
>>621751
Ничего необычного в этом жсоне нет.
#114 #621782
>>621770

>Во-вторых можно и в листе. Опыт показывает, что даже getView можно забивать всяким говном на 150 строк — всё будет хорошо даже на старых бюджетках.


Это для тебя 150 строк, поиск не по идшникам потратит больше времени чем через айдишники.
Но юзай холдерпатерн забиваем на это болт.
#115 #621784
Привет котаны.
Есть такая задача: пользователь скачивает файлы (.mp3), одновременно можно скачивать только 3 файла.
Необходимо - организовать очередь и доставить в UI поток информацию о прогрессе и результате. Сохранить файл в стандартную папку с музыкой.
Годный ли такой подход?
1) Создаем FixedThreadPool на 3 потока
2) Каждый поток занимается тем, что скачивает файл и сохраняет его в папку с музыкой, результат и прогресс сплёвывает через Handler?
#116 #621787
>>621782
Мне другое не понятно: если у меня каждый элемент списка содержит вложенный linear layout, в который динамически добавляются элементы. То как здесь избежать findViewById? Никак?
#117 #621789
>>621784
3) Через Callback юзаем результат в UI потоке.
#118 #621790
>>621787
Никак.

>в который динамически добавляются элементы


Ты инфлейтишь их? Если да то это пиздец для листа, буде тупить при определенном количестве инфлейтов. И холдер не поможет.
#119 #621791
>>621787
Хотя напиздел.

> в который динамически добавляются элементы


файндвью нужна чтоб связать иксемель с кодом, можно писать вьюху из кода.
#120 #621792
>>621790
Да, инфлейтю. Список слегка лагает при прокрутке.
#122 #621798
>>621793
Вариант, но опять же инфлейты будут вызывать лаги, если не критично то забей.
47 Кб, 1046x785
#123 #621823
Сап, андроны.
Сорри, что не совсем в тему, но не могу придумать идею простого приложения под Андроид для запиливания.
Нужно, чтобы приложение содержало несколько функций пользователя, было реализовано несколько собственных классов (помимо стандартных), использовался MVC, и также чтобы присутствовала работа с датчиками/устройствами, работа с файлами, с базой данных (SQLite), с облаком и пр. (что-то одно или несколько из этих вещей).

Подумывал какое-то приложение для мат. статистики запилить, типа для ряда значений рассчитать всякие хар-ки, мб графики построить, но работы с системой маловато (если только запилить чтение/запись данных в файл). Или органайзер времени (задач), т.е. вбиваешь задачи для выполнения и сроки, если какая-то задача близка к завершению, то выдается оповещение (мб с помощью Notification), но это, наверное, слишком заезженно и простовато.
Алсо, думал простейшую гоночку в псевдо-3Д запилить, и управление сделать наклонами телефона (gravity sensor для этого нужен, как я понял?), но что-то боюсь сложновато будет, много по времени займет запиливание этого псевдо-3Д (еще для отрисовки хз что удобное использовать) и реализация управления сенсором.

Подскажите какие-то идеи. Или мб по приведенным выше что-то можете подсказать?
#124 #621826
>>621823
Для какого учебного курса?
#125 #621828
>>621823

> работа с файлами, с базой данных (SQLite), с облаком


Очередной плеер музыки вк с кэшированием.
#126 #621829
>>621826
Предмет "Мобильные и встраиваемые операционные системы". Другие варианты заданий: написание драйвера для устройства, написание приложение под Win Phone или написание программы для других встраиваемых систем с ОС.
Выбрал себе написание приложения под Андроид, т.к. это как-то ближе хотя на самом деле ни с чем из этого не работал толком
#127 #621834
>>621828
Это ж надо еще наверное ВК API знать?
Мне бы желательно поменьше дополнительных инструментов изучать, чтобы быстрее сделать задание.
#128 #621837
>>621834
VKSdk есть. Там довольно просто.
#129 #621838
>>621823
Погугли Claris Organizer.
Это такая древняя программа под MacOS ещё времён 1.x - 7.x
#130 #621840
>>621829
Как же я рад, что не пошел на факультет ИТ.
#131 #621922
>>621784
>>621789
Сделал так, короче, завтра вкину, обложите хуями и т.п.
#132 #621946
>>621782

> Это для тебя 150 строк, поиск не по идшникам потратит больше времени чем через айдишники.


Разумеется. Возможно, на порядок больше. Не 10 мкс, а 100. Бида.
40 Кб, 170x233
#133 #622224
Антош, сохраняю OAuth-токен доступа через getPreferences(Context.MODE_PRIVATE) всё правильно делаю?
Кроме токена хранить ничего не требуется.
Насколько безопасно так его хранить?
Какие подводные камни?
#134 #622258
>>621922
У меня была похожая хуйня, но неограниенное количество одновременных закачек с возможностью отмены, еще и в разных местах в приложении могло показываться и при закрытии должно было закончится в бэкгрануде. Наделал костылей с сервисом в котором есть ExecutorService с кэшем тредов. Из фичи общался с UI через интенты. Лучше бы сделал через DownloadManager и в одном треде его бы ебал вопросами ну че как там уже сколько загрузил и оттуда слал бы интенты.
#135 #622263
>>622224
http://stackoverflow.com/questions/10161266/how-to-securely-store-access-token-and-secret-in-android

На рутнутом телефоне может быть не безопасно, но во-первых кого это ебет, а во-вторых можешь шифровать своим еба методом уровня цезаря и тогда точно пока не возьмутся за реверс инжиниринг все будет ОК.
#136 #622566
Ролл
#137 #622568
Реролл, ибо выпала хуйня.
#138 #622644
Платиновый вопрос: можно ли на купленную Idea наложить плагины, чтобы он был как Android Studio? Я не знаю что там есть в Студии (кроме заголовков библиотек), наверное, дебаггер
#139 #622790
>>622644
Тебе поебаться захотелось или что?
#140 #622792
>>622258
В DownloadManager можно задать имя файла под которым он должен сохранить загруженное?
Вообще вариант с DM выглядит более костыльным. По сути допиливаем нужный функционал через костыли.
#141 #622812
>>622644

>чтобы он был как Android Studio


Больной ублюдок.
#142 #622813
>>622644
Незнаю, как сейчас - пару версий назад было можно. Я так делал, когда только начинал кодить под ведроид. Но потом всёравно решил перейти на студию.
#143 #622929
>>622792

>можно задать имя файла под которым он должен сохранить загруженное?


Конечно можно: http://developer.android.com/intl/en/reference/android/app/DownloadManager.Request.html#setDestinationUri(android.net.Uri)

>Вообще вариант с DM выглядит более костыльным


Выбор между системными костылями и своими.
#144 #622936
>>622929

>Выбор между системными костылями и своими.


Своя реализация - это велосипед.
Велосипед лучше костылей.
#145 #622946
Анон, поясни мне про юнит тесты для приложения. В каких ситуациях писать и приведи если не сложно простой пример.
#146 #623074
Где можно найти новичку несложные фриланс заказы под андроид?
#147 #623083
Вопрос в какую сторону нужно копать если собираюсь стать разработчиком под андроид ?
Много ли можно заработать на этом?
sage #148 #623092
>>623083
OP пост
#149 #623133
>>623074

Напиши мне приложение, ну как контакт, короче. Ну я знаю, что ты талантливый программист, тебе несложно будет))) Как только окупаться начнет, сразу заплачу, зуб даю) Еще и друзьям про тебя расскажу, нарасхват будешь)))
#150 #623138
Как мне на устройстве развернуть базу данных? Открыл 2-й том Хорстманна, он грит мол иди к админу, сам не осилишь.
Но это он про БД на сервере, а мне надо локальную.
#151 #623140
>>623074
Здесь другие ребята. Лабы под андроид писать не получится. Обычно требуют либо делать с нуля, либо доделывать начатое
#152 #623142
>>621829
Какая специальность?
#154 #623289
>>622790
Я хочу, чтобы у меня один IDE был под все языки
#155 #623298
Ребята, впервые вкатываюсь в ваш тред, дабы попросить помощи в простом деле. Придумайте мне тему для курсача. Знаю ооп ну, азы на крестах. Вот сейчас решился серьезно учить матчасть, начал с сиспа, а потом на джаву перекачусь, поэтому курсач мне будет за старт в джава будущее. Спасибо заранее, анон.
92 Кб, 512x512
#156 #623346
Я тут высрал за 3 дня https://play.google.com/store/apps/details?id=com.levelgd.dvachpics

Если долго и с глюками грузится - перезапустите программу, сервер раскочегарится. Суть не в этом. Хотелось бы советов мудрых услышать насчет внешнего вида и требуемого функционала для программы такого рода.
#157 #623397
>>623346
Как сделана такая галерея? Чем грузишь пикчи?
#158 #623398
>>623397
Точнее такой список.
#159 #623400
>>623289
Так и получится. Студия сделана на базе intellij idea.
#160 #623402
>>623397
>>623398
Это обычная WebView, несложно догадаться. Сервер дрочит двач, формирует линки на пикчи, на клиенте картинки грузятся с двача, нет смысла их сперва перекачивать на сервер. Пока только /б в тестовом режиме, первые 20 тредов (всего в /b их 105).
#161 #623412
>>623402
Т.е. ты грузишь со своего сервера страницу на которой картинки с двача?
Охуеть, а без сервера нельзя?
#162 #623420
>>623412
Можно, но это существенно повысит требования к скорости интернета клиента. Представь что инет у юзера не оч, и сраная страничка с картиночками будет грузиться 5 минут, так нельзя делать. Формировать же галерею все же куда проще на серве через ноду чем на телефоне.
21 Кб, 466x240
#163 #623587
Андроиданы, вопрос наверное не сложный, но я чего-то не нашел уверенного best practice для этого. Короче есть у меня вьюшка, которую я боюсь долго оставлять в памяти, но ссылка на неё должна быть в Runnable, который работает с интернетом. По-этому я хочу в момент cancel обнулить ссылку на неё. Ситуация примерно пикрелейтед. Как мне уловить момент отмены и обнулить объект? Я понимаю что можно через AsyncTask, но интересно как это в ванильной жаве сделать. Интенты не предлагать. Делается библиотека с баннерами. Извиняюсь за шакальство, не понимаю почему так хуево.
#164 #623634
Чем хтмл с криптожабой конвертнуть в апк для маркета?
#165 #623652
>>623634

Руками создай приложение, которое в себе webView содержит, там работы на 40 минут максимум
#166 #623949
Отличный пример, демонстрирующий высокую производительность Apache Cordova по сравнению с медленной Java.
На моем Nexus 5 с Android 6.0.1 тормозит ПИЗДЕЦКИ
https://play.google.com/store/apps/details?id=au.com.redata.android.demo&hl=ru
#167 #623951
>>623587
Зачем там ссылка на вьюшку?
Как ссылка на вьюшку там используется?
#168 #623988
>>623951
Получится JSON в котором хтмл код который надо засунуть записать в базу и возможно засунуть в вэбвью. Ну короче баннер рекламный. Мне в ванильной жавы треде уже ответили, FutureTask конфетка.
#169 #624019
Встретил тут вот это
http://ionicframework.com/

Как думаете, стоит обмазаться? Иногда клиентам нужно простенкое приложение под сайт, если в такой хуйне можно быстро его сделать, то я не прочь.

мимо из php треда
#170 #624041
native api работы много?
черный софт пишут уже? востребовано?
#171 #624061
>>623988
Приложение не крашится из-за того, что ты не из UI потока к View обращаешься?
#172 #624090
Анончик, подскажи пожалуйста.

У меня есть две версии приложения, full и free, различаются исключительно отсутствием рекламы. Предположим на девайсе установлены обе версии. Приложение умеет грузить картинки из галереи/с камеры (использую стандартные средства ведроида). При загрузке есть вероятность того что Активити вызывающая будет выгружена из памяти, и тогда при возврате она будет пересоздана. Как правильно описать intent-filter в манифестах платной и полной версии, чтобы при возвращении из стандартных активити Андроида не появлялся диалог с выбором, какое из приложений (полное или бесплатное) запустить?
#173 #624107
>>624090

> платной и полной


Фикс: бесплатной
#174 #624108
>>624061
Так есть же post, а вообще я сделал через фичу, там не вьюшка висит, а просто интерефейс который умеет реагировать и в done() через предоставленный Handler или через Handler главного треда post.
#175 #624140
>>624090

>Предположим на девайсе установлены обе версии


Третью еще сделай.
#176 #624153
>>624140

Ну смотри, юзер качает бесплатную версию, потом через какое-то время решает купить полную, но бесплатную не удаляет. И что тогда?
#177 #624177
>>624153
П О Д П И С К А
О
Д
П
И
С
К
А
А еще найди приложуху в сторе такую.
#178 #624263
Вижу, что в некоторых приложениях приводится список open source лицензий.
Правильно я понимаю, что это важно в том случае, если приложение очень популярно, платное и используется туева куча сторонних либ?
У меня используется 2 либы:
https://github.com/intuit/sdp
https://github.com/kolavar/android-support-v4-preferencefragment/blob/master/LICENSE
Мне не зачем волноваться и можно не делать такой раздел?
#179 #624270
>>624108
Я понимаю, что интересно всё исследовать, ты молодой-шутливый, но ты просто изобрёл велосипед. Абсолютно то же самое умеет делать AsyncTask: он именно так и работает.
#180 #624271
>>624263
Забей, алсо вторую поменяй на гугловский preference appcompat есть отдельной либой.
#181 #624274
>>624271
Ага. Осталось вспомнить зачем я использовал его вместо гугловского.
#182 #624400
Почему-то в ActionBarActivity не отслеживается кнопка меню, остальные кнопки отслеживаются. В простой Activity все работает.

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
Log.v("App", "menu event");
return true;
}
return super.onKeyUp(keyCode, event);
}
#183 #624442
>>624400

> ActionBarActivity


This class is deprecated.
Use AppCompatActivity instead.
#184 #624448
>>624442
Ты их код видел? ActionbarActivity extends AppCompatActivty и больше ничего не меняет.
>>624400
Ты про оверфлоу меню?
#185 #624591
Привет, ребята, очередной чайник в треде. В общем задумал я сделать одну классную вещь под андроид, но ни с чем, связанным с программированием в жизни дел не имел. Так вот вопрос. На каком движке можно написать игру типа "Взломщик 1.6", если помните такие были популярны лет 10 назад. Много ли нужно времени для того, чтобы новичку написать подобное?
#186 #624621
>>624591
Бери Unity3D и пиши.
#187 #624765
А есть какой-нибудь канал на ютабе, где выложен пример создания игры на ведроид на каком-нибудь libgdx? Скиньте, пожалуйста, если есть.
#188 #624797
>>619808
что планируешь делать в связи с ситуацией с api level 23 и apache со старыми своими приложениями ?
113 Кб, 500x600
#189 #624802
>>619370 (OP)
Анончики, хочу пойти на стажеровку в контору по разработке приложений под ведро, есть проблема из все что знаю это только с курса elegion от гугл ну так чуть тыкал в android studio. Вопрос в том что бы подготовить для собеседования, порекомендуйте самый минимум навыков, знаний что бы выглядить хотя бы знающим?
#190 #624845
>>624802

>ничего не знаю и исправить это не пытаюсь, хочу быть девелопером


Контора с таким же успехом может взять джамшута с улицы вместо тебя. Читай книжки, кури туторы, пили хелловорлды.
#192 #624855
>>624845
Дайте годную книгу на русском языке для хелоувордов
#193 #624857
>>624854
Походу нет
#194 #624863
>>624857
А вдруг есть? Бампану еще пару раз, может кто подкинет
#195 #624872
>>624863
Есть. Но человеку, не умеющему пользоваться гуглом, я помогать не буду.
#196 #624874
>>623587

>Я понимаю что можно через AsyncTask,


У тебя раннейбл запускается в другом потоке? Тогда как ты вообще собираешься взаимодействовать с вьюхой?
А так, можешь попробовать делать, например, thread interupt для отмена, если у тебя работа с интернетом не блокирует поток. Иначе никак - ибо состояние interrupted тебе придётся проверять вручную в методе run
#197 #624876
Аноны, а что вообще представляет из себя кодстайл в реальных проектах андроида? Смотрю коды прог на гитхабе - у одних куча абстракций, все выдрочено до неузнаваемости в проекте с двумя активити, у других - наоборот - вся логика намешана прямо в активити, никаких паттернов, нихуя.
Сам валю из тырпрайза в ведроид, ибо заебало бесконечное количество AbstractSingletonProxyFactoryBean, 20 слоёв ебаной бизнес логики над бизнес логикой, бесконечная абстракция и прочие радости тырпрайза. Правильно делаю, или путь онли в сишечку?
#198 #624942
>>624765
Сотни их.
#199 #624943
>>624797
Всмысле?
#200 #624953
>>624876

Я ньюфаг, но как понял по семплам от гугла. Что надо в каждое активити вставлять фрагмент и работать уже с ним. С лейаутами также, вместо того, что бы все запилить в одном надо делать <include> -> <include> -> <include> и так далее. Такое ощущение, что изначально все должно было быть по-человечески, но у них не получилось и в итоге сейчас понавставляли кучу костылей и у меня жопа горит от этой запутанности.
#201 #624969
>>624953

>Я ньюфаг


Вот покодишь еще годик и поймешь что так и надо, даже больше, что без фрагментов, отдельных ресурсов для всего и т.п. - без этого просто невозможно. Всегда для фрагмента, адаптера, хуяптера с листенерами и вообще любой дрисни можно запилить отдельный класс и спокойно ебать его, а не оперировать длиннющими на три экрана строчками с бесконечными анонимными функциями для описания сраного алертдиалога, который пользователь и не увидит никогда. Запилил нужное говно в классе и забыл. А когда о нем надо вспомнить - залез в класс и выдрочил его, без получасового поиска нужного женерик названия в документе.
#202 #625023
Аноны, банальная ситуация: одно активити, несколько фрагментов, соответствуют пунктам в naviagtion drawer.
У каждого фрагмента есть ui, и своя логика загрузки данных. Для загрузки данных используются методы стороннего апи (синхронные, либо асинхронные), и соответствующие им коллбэки.
Есть 2 решения:
1) Захуячить setretaininstance(true) - но тогда надо смотреть, чтобы при доставке данных ui был доступен (как?), ибо при повороте он всёравно будет перерисовываться.
2) Не делать setretaininstance - но тогда придётся всю эту хуёню-малафью с методами апи оборачивать в лоадеры, что породит кучу огромных лоадеров с нехилым велосипедом.

Какое вы юзаете?
#203 #625027
>>625023
Rx
Но тут будет два варианта:
1) Хранить подписки во фрагмeнтe с ретаэйном;
2) Хранить подписки в синглтоне
#204 #625031
>>625027

>1) Хранить подписки во фрагмeнтe с ретаэйном;


>2) Хранить подписки в синглтоне


Что не отменяет взаимодействия с ui при доставке. Надо как-то проверить, что ui доступен, особенно интересно, как это сделать во фрагменте с ретейном, где сам фрагмент не пересоздаётся, но ui перерисовывается.
#205 #625038
>>625031
Нихрена не будет доставляться если ты отпишешься в onPause(). Ретэйн фрагмент умрет тогда, когда умрет активти, значит останавливай все. Ты не так понял ретейн фрагмент. Я имею в виду не UIшный фрагмент, а тот который просто висит в мэнэджере - UI не имеет. Так что смотри: UI фрагменты подписываются, отписываются, а ретейн держит сабскрипшены и вообще рулит процессом.
#206 #625073
В MainActivity заменил модуль с MainActivity на "нужный_нейм", но приложение просто крашится, при этом создавал модуль в папке layout, короче говоря всё как у людей. В чём проблема?
#207 #625076
>>625073
А читать ты умеешь? Как насчет проверить манифест?
#208 #625080
>>625076
Сам файл открыть или на изображении телефона выписывает?
#209 #625083
>>625080
Ты смеешься? AndroidManifest.xml открой, а ошибки в логе.
82 Кб, 981x486
148 Кб, 987x786
#210 #625100
Вот скрин того что выдал
#211 #625101
>>625100
И Д И
Н А Х У Й
М У Д О З В О Н
и startandroid забери
#212 #625103
>>625101
А хули не так?
#213 #625179
Пихнул вам всем в очко свой ОБРАТНЫЙ ЗВОНОК
#214 #625180
>>625100
Пшол отсюда, мразь.
192 Кб, 1000x667
#215 #625186
Я вот не понял дроча на фрагменты. Они нужны в самой апликухе если есть переключения между пунктами меню например.
Но нахуй окно логина вешать на фрагмент?
С фрагментом работать намного хуевее чем с активити, как минимум из-за того что постоянно нужно смотреть привязан ли фрагмент к активити. В результате на каждый вызов ретрофита нужно прописывать ифы и так с любой асинхронной хуйней по сути.
#216 #625191
>>625186
Что бы трекать сессиию например и другие похожие вещи. Да и проверок особенно не нужно если ты пишешь на диск, а фрагменты просто реагируют. Вот был бы нормальный колбэк как Application.onCreate(), только Application.onDestroy(), а так нужны костыли.
#217 #625194
>>625191

>Что бы трекать сессиию например и другие похожие вещи.


Типа на онДетаче посылать запрос про офлайн? Это имел ввиду?

На диск это ладно, но для любой работы с юи нужен не контекст, а активити.
#218 #625314
>>625194
Если все правильно сделать - все подписки и колбэчики, то до не приципленного фрагмента они не дойдут
#219 #625373
Сосаны, вот есть у меня aarник, но я хочу что бы его могли использовать другие люди, или я сам, но так что бы он не лежал как модуль в проекте, то есть взять грубо говоря vasyanliba.aar и вставить ее в рандомный проект, как сделать?
#221 #625455
>>625314
Каким образом?
Ну блять, подписка просто более правильный подход, но по сути все равно идет слежение за тем привязан ли фрагмент к активити.

На счет онДетача фрагмента, если убить процесс системно, онДетач не должен же срабатывать?
Тогда каким образом можно следить за статусом пользователя? Ушел апликухой в бэкграунд, но еще в онлайне же, убило системой и онДетач скорее всего не сработает.
#222 #625474
>>625455
Так я и говорю, что нет у апликэйшлна точного метода, когда все. Не знаю откуда ты он детач взял. А вот у активти есть, если ты убьешь процесс, то onDestroy() точно вызовется.
#223 #625685
>>625474

>onDestroy() точно вызовется.


Вообще-то нет, не вызовется. Я и подумал что ты хочешь сказать что при убивании процесса на фрагменте онДетач вызывается, но видимо нет.
#224 #625711
>>619370 (OP)
Ох, ебушки воробушки, аноны, как вы ебетесь с этими ведрами если тулзов адекватных и ускоряющих разработку гугол как не поставлял так и не поставляет? За что вы так ненавидите Xamarin? На ios разработка идет в лет, на ведро портируется в шум, если твоя аудитория это не носители говно-телефонов. Что не так?
#225 #625730
>>625711

>На ios разработка идет в лет,


Что ты под этим имеешь в виду?
#226 #625739
>>625730
ну я имею ввиду что быстро фичи фичевать. Я не думаю я всякой низкоуровневой херне, которая в большинстве приложений нахрен не упала. Просто беру и юзаю из коробки то что есть и оно работает. Без глюков. Есть места которые надо напильничком подлатать - но таких немного. В основном ты пишешь бизнес-логику а не трахаешься с оптимизациями, куришь логи девайса, ковыряешь dSym итд На это же уйма времени тратится в нэйтиве
#227 #625744
>>625711
+....ебал я в рот тех кто писал андроид студио - тупорылое и тормозное говно особенно эмулятор
#228 #625771
>>625744

>В основном ты пишешь бизнес-логику а не трахаешься с оптимизациями


Это да.
>>625744
Хз. Со студио не знаком, так что сравнивать не с чем, но хкод – это одна из самых уебанских разработок от Эппла в плане стабильности
#229 #625858
>>625711
Ой да не пизди. Сделай мне риппл эффект на баттоне на ведре 4.2.2.
Жду решения.
#230 #625930
Господа, если я хочу хорошо освоить SQLite, то мне нужно искать книгу по ней конкретно(если такие есть) или же просто брать книгу по SQL и по ней учить? Одно и тоже будет или же нет?
#231 #625977
>>625930
Там есть разница, но SQLite попросту проще. Много чего нету, много что для галочки типы данных например и тд.
Но всякие иннерджоины и тд аналогичны, так что пох на самом деле.
Единственное что после обычной sql нужно будет почитать разницу чтоб не ожидать всяких убер фич и приемов.
#232 #626011
>>625930
SQLite изучается документацией. Она сильно упрощена, по сравнению с мускулями/постгресами.
#233 #626098
>>625685
Ты только что сломал мои розовый очки. Действительно не вызвалось, но то был терминэйт мануальный. При более не менее нормальном поведении, то есть когда грохает система, но еще не так жестоко(don't keep activities) всем все вызывается.
#234 #626137
>>625858
Да как нехер. Затаскиваю любую либу с гитхаба которая умеет это делать на api 14-19 и пишу рендер кнопки, который действует по всему проекту.
#235 #626153
>>626098
На онДестрой нельзя полагаться.

>>626137
Поподробнее.
90% либ на джаве. Или это не проблема?
#236 #626164
>>626153
Android SDK тоже на Java, прикинь. Затащить любое .JAR дерьмецо можно быстрее чем это описано в туториале Xamarin, ибо понаписано плагинов для этого дела более чем достаточно. Все это превращается в пару раз тыкнуть мышкой в VS.
Ну а рендер по сути это нативная обертка над любой вью. Там все пишется старым дедовским способом - как гугл завещал. В итоге я имею кнопку которая описана в кросс-платформенном лэйауте и которая имеет 1 вид на ведрах, и так же имеет другой вид на ios. При этом верстка не трогается. Я пишу её 1 раз и дальше подключаю необходимые эффекты если надо. Но большинство анимаций например из коробки есть. Если надо что-то вычурное - пишем сами или тащим либу
#237 #626165
>>626164
При том мне доступен полный SDK - поэтому можно и самому написать используя обучающие материалы нативной разработки.
#238 #626250
>>626164
Ну у всего же минуса есть, какие на хамарине?
#239 #626261
http://fritzmorgen.livejournal.com/851042.html?thread=426252130#t426252130

А вон там обсуждают, нужен ли бодишоп вообще

По теме: многие ли из вас работают удаленно напрямую?
#240 #626276
>>626261
В двух словах поясните нахуй в россию ехать?
Не буду все читать.
#241 #626297
>>626261
Два дивана - это сила, называется. Бодишопы нужны аутистам, которые не могут в общение, и заказчикам, которые не хотят рисковать (энтерпрайз прежде всего).

Рейт $20 в бодишопе - это как минимум $10 на налоги (в отличие от хохлов, где все - ИП, в России за такое ебут), плюс офис (аренда, уборщица), плюс оплата труда хрюш, пинающих этих аутистов манагеров, тачку директору, хуе-мое, вот и $35-40 у заказчика. Заказчик тут платит не программисту, а за комплекс услуг. Заказчик тут - менеджер в каком-нибудь западном банке, у которого мысли о том, как он после 6 пойдет домой к жене, и ему гемор вообще не нужен, его интересуют формальные показатели и цифры, от которых у него зависит премия.

Напрямую платить $40/h заказчик за такой же скилл не будет, потому что бодишоп предоставляет услуги - он на себя берет риски того, что исполнитель может слиться, забухать, уйти на больничный. Поэтому, чтобы получать $40/h напрямую нужно развивать скиллы общения, наработать репутацию, что ты надежный и не сваливаешь на половине проекта, мучиться/наслаждаться с заказчиками не из энтерпрайза.

А столько же, сколько местным, платят только уникальным специалистам, когда гемор удаленки окупает пользу компании. Т.е. единицам. Обычно удаленность и отсутствие нативного английского уже подразумевает дисконт.
#242 #626306
>>626250
Минуса есть. Иногда жестко тупит VS, приходится перезагружаться.
Долгое время загрузки приложения, если не настроен линковщик, который должен уменьшать подключаемые библиотеки да и твой код тоже.
И обновления в Xamarin это зло. Нужно очень долго работать с этой платформой чтобы вовремя обновиться без последствий. Да и то...
Недавнее обновление например добавило в инсайты новых эксепшнов, которые раньше не возникали. Нужно точно знать номер стабильной версии Xamarin и библиотек Xamarin Forms.
Ну и нельзя давать себе вольницу при верстке лэйаутов и фигачить высокую вложенность контейнеров и управлять их видимостью. Обычно в такие моменты вспоминаешь нативную работу с фрагментами, когда заменяешь один лэйаут другим в рамках одной activity. Это реализуемо в ксамарин, но расходится с парадигмой XamarinForms.
Ну и опытный программист знает что на Xamarin списки из коробки неоптимизированны и есть отличное решение - отказаться от автоматических биндингов в ячейки и обновлять их ручками. Новички про это не в курсе и всегда когда получают глючное решение - ругают замарин. Может оно и объективно, но решение есть и оно даже на костыль не похоже.
Работу с Http нужно организовывать не через стандартные немспейсы, а подключать либу которая работает с нативными инструментами - ибо работа в 2-3g сетях стабильнее. Вообще нельзя сказать что прям все работает из коробки, но магазин компонентов и Nuget полон самых разных решений.
Если не надо делать что-то вычурное и необходимо это пилить на 2 а то и на 4 платформы сразу то Ксамарин самое то. Если нужно написать лаунчер какой или ещё что подобное - Замарин не ваш выбор однозначно.
#243 #626310
>>626250
Нестандартный UI пилится очень сложно. Если следуешь гайдлайнам - все ок. Как уходишь начинаются проблемы.
#244 #626328
>>626310
В ведре это тоже нихуя не просто.
>>626306
Понял спасибо.
Так а в чем трабла лаунчера не понял.
#245 #626332
>>626306
Те же яйца, только в профиль и за деньги.
#246 #626359
>>626332
Время наш главный враг. В 1 рыло за месяц можно намутить добротный прототип на 3 платформы. Быстрота главное преимущество. Потому и денег стоит. Да и комфорт никто не отменял, я о многих вещах даже не задумываюсь, просто беру и делаю
13 Кб, 48x48
#247 #626420
Анон, помоги понять, чяднт. Пытаюсь прикрутить к приложению активити с гуглокартой, но, как только подключаю
compile 'com.google.android.gms:play-services:8.4.0'
всё отваливается и пидорасится, в логе только "Gradle build finished with 1 error(s) and 4 warning(s) in 2m 2s 280ms"
а конкретику найти не могу.
#248 #626458
>>626359
Ну на джсе тоже можно клепать. Толку то. Пока рынок требует будет на джаве писать.
#249 #626459
>>626420
Трайни 8.3.0
#250 #626471
>>626420
Плагин сервисов подключил? Попробуй только карты подключить и base (или core, если там есть, а то вдруг выдумываю). Проверь версию грэйдла и его плагина.
#251 #626488
>>626459
Не помогает.
>>626471
Вроде подключил.
Если создать отдельный модуль, то всё работает, но почему-то при попытке вставить активити с картой в моё - валится.
#252 #626504
>>626488
Ключ не забыл?
#253 #626514
>>626504
Неа, хотя есть подозрения, что делаю что-то не так.
Не понимаю, почему вообще подключение в dependenses рушит билд.
10 Кб, 200x200
#254 #626518
>>626514
БЛЯДЬ БЛЯДЬ БЛЯДЬ

Весь день ебусь, пиздец какой-то.
Только что очередной раз добавил новую активити по шаблону гугломэпс, по ссылке создал ключ, вставил, запускаю, и снова
Gradle build finished with 1 error(s) and 4 warning(s) in 1m 33s 994ms
Если создавать с нуля апп и делать всё то же самое. то получается, а так - нет. Пиздец
#255 #626528
>>626518
Ну ты хоть скрин ошибок в иде покажи.
8 Кб, 200x200
#256 #626538
>>626528
Уже нашёл, был какой-то конфликт с либой для асинхронных запросов, причём выяснил я это тупо отрубая компоненты, пока не нашёл эту парашу.

Котаны, а подскажите, есть ли список полезных советов, каких-то фишек, которые бы экономили время и нервы?
#257 #626563
>>626538

>Котаны, а подскажите, есть ли список полезных советов, каких-то фишек, которые бы экономили время и нервы?


>Gradle build finished with 1 error(s) and 4 warning(s) in 1m 33s 994ms


Используй линупс, там градл быстрее в разы работает. На моём ноуте в винде градл хэллоуворлд компилится за 10-12 секунд (с демоном, без демона однохуйственно, с демоном даже медленнее иногда почему-то выходило, хз, причём градл последний специально качал, а проебаться с настройками там сложно - их практически нет), а на линупсе (у меня centos 6.7, что для ведроразработки ещё и не самое оптимальное, приходилось вручную пердолиться с пакетами, которых в репозитории не оказалось) прямо сейчас запустил - первый раз раз 5.8 секунд (подрубился демон), последующие - меньше секунды (0.8-0.9)
71 Кб, 427x604
#258 #626564
>>626563
Кстати, сейчас специально ради тебя перекомпилировал свой проект. Первая компиляция (то есть, полная, с clean и всеми тасками градла) вышло 30 секунд. На шинде до 2 минут доходило.
#259 #626566
>>626518
Это еще что, у меня R файл не генерировался, хотя я сделал clean и build, пока не удалил все drawable, а потом обратно вставил.
#260 #626567
Раз уж жалуемся на gradle, что сделать что бы не тупил? А то например редактирую build.gradle и студия тупо фризится, пробовал и на виде и на маке.
99 Кб, 1626x738
80 Кб, 1502x962
55 Кб, 720x1280
#261 #626595
>>619370 (OP)
Привет пацаны! Как и многие решил угореть по андроиду, написал приложуху (афишу для местных кинотеатров) и заметил, что скролл не такой плавный как в приложении ВК.

Ради такого дела полез смотреть трассировку - если мотнуть экран вниз, то первое время все нормально (пик 1), но в какой-то момент все становится плохо (пик 2) и дальше лучше не становится. Во фрэйме, после которого все ломается, происходит "Expensive Bitmap uploads" Pixels uploaded "0.31 million", Time spent 11.750 ms, Upload 1038x300 Texture took 11.75ms. О каких текстурах идет речь я не понимаю, у меня даже при всех закомменченных ImageView такая же фигня.

Может я накосячил в программе или еще что. Поэтому я собрал пример полностью по руководству гугла http://developer.android.com/training/material/lists-cards.html#Dependencies и, естественно, ничего не изменилось. Скролл такой же рваный. В моей пустой программе тормозят даже пустые карточки (пик 3).

Что можно сделать, пацаны? Мой телефон говно? Или это я не понимаю сути андроида?
#262 #626630
>>626595
Покажи свой адаптер для листа или рейсайлервью.
#263 #626634
>>626458

>JS


ты серьезно? не, ты реально серьезно вот сейчас произнес это?
#264 #626635
>>626630
http://pastebin.com/jEsn1Zi4 - вот реальный адаптер
#265 #626637
>>626635
http://pastebin.com/69rh2Pxa - даже вот этот адаптер тормозит (с него 3й пик)
http://pastebin.com/F2K8BetZ - а вот такая верстка для 3 пика.
#266 #626638
>>626634
И хочу добавить что таких проблем как несколько постов выше с гугло-картами на замарине нет. Подключил за 2 минуты, расширил немного классец карт, добавил что надо и оно работает, компилится без всяких танцев с бубнами. Собсно за это фирма и деньги на лицензии платит
#267 #626663
>>626638
Ой все пиздуй уже. То что человек не может либу подключить сугубо его проблемы.
>>626634
Да, там платформы 3-4 конкурирующих.
#268 #626664
>>626637
Попробуй на эмуляторе посмотреть. Просто тут действительно нечему лагать.
#269 #626695
Ну и так по частям:
1) public class DataObjectHolder, почему не статик?
2) Этот OnCLikListener выглядит просто ужасно; Мне кажется легче в onBindViewHolder передать объект, который будет рисоваться во вьюхолдер и тогда нет нужды с этими кривыми хренями;
3) Есть подозрения, что все так хреново из-за RelativeLayout'a в корне иерархии;
#270 #626742
>>626595
Этот пост >>626664 про этот код >>626637

>>626695
Код не мой, я другой анон но есть вопросы.

>1) public class DataObjectHolder, почему не статик?


Вообще правильно, мол чтоб мемори ликов не было нужно статик делать. Но логически я никак не могу понять каким образом в данном случае будет мемори лик?

>3) Есть подозрения, что все так хреново из-за RelativeLayout'a в корне иерархии;


Очень сомневаюсь в этом.
#271 #626965
>>626695

> 1) public class DataObjectHolder, почему не статик?


> 2) Этот OnCLikListener выглядит просто ужасно;


Первое - это следствие второго.. Статик пришлось убрать, потому что myClickListener.onItemClick не получалось вызвать из статического объекта, а по-другому я не разобрался.

> Мне кажется легче в onBindViewHolder передать объект, который будет рисоваться во вьюхолдер и тогда нет нужды с этими кривыми хренями;


Не совсем тебя понял, но мне кажется это дельный совет. Поясни, пожалуйста, подробнее.

> 3) Есть подозрения, что все так хреново из-за RelativeLayout'a в корне иерархии;


В самом приложении нет релатив лэйаута, там вот так: http://pastebin.com/jjfBhMKx

>>626664
На эмуляторе такое же поведение, я трэйс в нем и сделал, в телефоне ядро без дебага собрано. Эмулятор у меня 5й версии вроде, на телефоне 4.4.2. Проблемы в обоих

Аноны, может быть проблема в том, что я в бете андроид студии 2.0 preview 4 пытаюсь работать?
55 Кб, 720x1280
#272 #626992
>>626965
Аноны, я проверил, от версии студии тормоза по прорисовке не зависят. Кто-нибудь может проект с recyclerview и карточками у себя погонять и посмотреть, будут ли тормоза такие же как у меня?

https://dropmefiles.com/kzpes - вот пустой проект, который ближе к низу списка у меня начинает тормозить.
34 Кб, 640x526
#273 #627003
Не понимаю как работает сборка мусора. Допустим, у меня есть Activity, с методом onResult. Activity создаёт другой объект, допустим Dowloader с помощью new Downloader(this).
Downloader сохраняет эту переданную ссылку в поле mCallback. Внутри Downloader объявляется AsyncTask, который в onPostExecute вызывает mCallback.onResult(yoba).
Вопрос: если в момент выполнения AsyncTask Activity будет убита, что произойдёт? Будет ли собран сборщиком объект Downloader? По идее объект AsyncTask будет иметь ссылку на родительский объект, значит ли это что он будет жить? Значит ли это что ссылка mCallback вмесие с Activity также останется жить?
Если всё да, то какой нормальный выход? Сделать WeakReference mCallback? Сделать AsyncTask статик классом (и можно ли так)?
#274 #627107
>>626992
Парни, это опять я. Опытным путем я нашел проблему. И теперь надеюсь, что вы подскажете мне, как быть.

Суть в том, что у меня тел philips, и в прошивке есть фирменная фишка XPower Tech (мать её).
#275 #627108
>>627107
Блин. Само отправилось..

>Данный режим работает на базе технологии PowerXtend, фирменной разработки компании Lucidlogix. Он необходим для того, чтобы уменьшить энергопотребление системы в процессе запуска тяжеловесных приложений – таких, как сложных игр с серьезной графикой, браузера с множеством открытых вкладок, программ для навигации и т. п. PowerXtend позволяет в этом случае сэкономить до 30% емкости аккумулятора! На практике это выливается в несколько дополнительных часов использования мобильного устройства в автономном режиме

#276 #627110
>>627107
Блин. Само отправилось..

>Данный режим работает на базе технологии PowerXtend, фирменной разработки компании Lucidlogix. Он необходим для того, чтобы уменьшить энергопотребление системы в процессе запуска тяжеловесных приложений – таких, как сложных игр с серьезной графикой, браузера с множеством открытых вкладок, программ для навигации и т. п. PowerXtend позволяет в этом случае сэкономить до 30% емкости аккумулятора! На практике это выливается в несколько дополнительных часов использования мобильного устройства в автономном режиме



По-видимому, эта технология тупо ограничивает fps в приложениях. Вот какого хуя эта фигня считает мое приложение тяжеловесным я не понимаю...
#277 #627123
>>620079
Ставишь fiddler на комп + его сертификат на девайс и читаешь весь шифрованный трафик
32 Кб, 620x387
#278 #627214
Антоши, есть один AutoCompleteTextView куда адаптером загружаю элементы.
Но происходит беда - они не умещаются на экране, а скроллбар не появляется, что делать?
#279 #627219
>>627214
Омг, не ту картинку добавил.

Лейауты выглядят так:

автокомплит:

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input"
android:scrollHorizontally="true"

>


<requestFocus />
</AutoCompleteTextView>

листайтим:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/appbar_padding_top"
android:scrollHorizontally="true"
/>
59 Кб, 362x685
#280 #627221
>>627219
ЧТо-то я совсем даун, тут картинку забыл, мод, пофикси, если слишком даун.
#281 #627335
Двач, у меня есть форма на активити, на одном пункте надо запустить другое активити, сделать там что-то, вернуться обратно с данными. Всё ок, но по возвращению вбитые ранее данные уничтожаются.
Как лучше это сделать?
#282 #627340
>>627335
onActivityResult, уже разобрался.
#283 #627374
>>627107
Именно по-этому не имеют смысла любые смартфтны кроме nexus.
Уж больно любят пихать странную фигню, которая не нужна и тормозит/глючит.
#284 #627375
>>626638
Таких проблем нет и на Java.
#285 #627376
>>626538
Средство есть и называется: опыт.
#286 #627377
>>626638
Такие проблемы с картами должны быть у каждого. В результате их имеем у одного ньюфага.
Так что и здесь проблем нет.
Очевидно, что ксамарин привносит:
1. Тормоза
2. Новые баги
3. Хочет денег
И в треде про разработку под android не имеет смысла обсуждать ксамарин, т.к. тут java справляется лучше.
#287 #627440
Аноны, денёчка! Хочу сделать шапку для своего приложения, которая будет включать в себя пикчу и текст, со шрифтами, цветом и размером которого хотелось бы поиграть.
ActionBar скрыл, в как это сделать Toolbar`е тоже не догоняю.
Надежда на тебя, анон!
#288 #627442
Аноны, поясните за проблему
Есть activity (класс1 скажем) для экрана. На этом экране layout, на котором лежит imageview.
Из этого активити по нажатию на кнопку должна запускаться анимация imageview.

Анимацию формирует другой класс (класс2). В этом же классе анимация и запускается для imageview.
Анимация представляет собой AnimationSet, который в себя включает последовательность анимаций по перемещению imageview (TranslateAnimation), они идут подряд друг за другом, и на каждую из этих анимаций перемещения навешены листенеры, которые меняют картинку (пикрил1).

В чём проблема
1)нажимается кнопка
2)появляется событие в класс1
3)обработчик события кнопки в класс1 вызывает класс2, чтобы сделать анимацию и её начать выполнять
4)анимация в класс2 формируется, для imageview вызваю startAnimation(анимация).
5)!!!тут проблема. Я думал анимация сразу сработает, но сначала возвращается управление в класс1, в обработчик
6) как только по телу обработчика поток доходит до конца, только потом срабатывает анимация.
то есть, поставив в обработчике thread.sleep(10000), анимация через 10 секунд только сработает.

У меня вопрос, почему сразу не срабатывает, и как запустить её сразу?
Чисто визуально, программа работает нормально. Но мне нужно решить этот вопрос чтобы сделать ещё кое-какие фишки.
Старался как можно понятнее объяснить. Без класса2 не обойтись.
7 Кб, 1283x347
#289 #627446
>>627442
отвалилась
#290 #627467
>>627003
Система отцепит активити, но сборщик его не уберет, итого у тебя будут висеть активти, и другие объекты. Что бы так не случалось надо загружать по другому, тут два стула:
1) Отменять загрузку при смерти или даже паузе активти;
2) Писать на диск, а в UI реагировать на изменения;
Тема старая и болючая, вот ссылочки https://docs.google.com/file/d/0B2dn_3573C3RdlVpU2JBWXdSb3c/edit, codeforces.com/problemset/status, но они уже прогнили, как говно мамонта, и есть новые модные решения из коробки и все говно.
>>626965
Ну смотри вот мой код стандартного адаптера которым я пользуюсь (http://pastebin.com/vruYdEmA), присутствует в том или ином виде в трех приложеньках, хотя очень далек от идеала, так что use sparringly. Собственно все действо будет происходить в onBind(T data) потомков AViewHolder'a, а в констуркторе я обычно выставляю как OnClickListener (или еще какой) сам холдер. Заодно обосрите братушки.
#291 #627468
>>627467
Блять запятые и скобки прицепились, не серчайте.
#292 #627470
>>627446
Зачем ты вообще пихаешь thread.sleep(10000) в анимацию? Для отложенного старта анимации есть метод... то ли сетДелей, то ли сетСтартТайм, короче в списке автоподстанова анимации что то такое поищи.
#293 #627473
>>627470
я не пихаю, я как пример привёл. один хрен, не работает
#294 #627507
>>627446
я всё сделал, вопрос отпал
#295 #627549
Как сделать навигейшнБар который двигает мейнКонтект? Как у фейсбука например.
#296 #627577
У меня вопросы к бывшим шарпоблядям. Есть тут такие? Какого это было перекатиться с шарпа на жабу? Стало лудше или хуже?
Хотет перекатиться, ебошить под мобилки. Заебал дотнет. Тут либо хуячить сайты, либо хуячить нативные приложения, которые нужны только секретаршам.
#297 #627667
>>623182
спасибо, почитаю
#298 #627676
>>627577

> Какого это было перекатиться с шарпа на жабу?


Как делать нехуй. Даже гайды по джаве не читал.
#299 #627683
>>627577
Мне понадобилось снова что-то на C# написать: так непривычны эти свойства в шарпе.
Порой листаешь список методов и ищешь, где же там getХуйня()
#300 #627739
>>627683
Я не понял. Ты писал на шарпе, потом на жабу, а теперь на шарп, где ты настолько отвык от проперти?
#301 #627741
У меня еще один вопрос назрел по поводу переката с .NET на андроид. Разница в ЗП при перекате. На дотнете я щас что-то между мидлом и сеньором, но получаю хуево, т.к. контора говно. Если я щас быстренько освою разработку под андроид, мой перекат, в плане зп, будет мягким? Или нубы вообще нихуя не получают?
#302 #627745
>>627739
Именно. Всегда по привычке начинаю набирать метод со слова get/set или искать глазами.
#303 #627749
>>627745
Охуеть. А я думал, что всякие плюшки шарпа, типа свойств, прочно впаиваются в черепушку, что аж потом жить без них не можешь.
#304 #627786
>>627749
Фишкой это сложно назвать.
Ну да, сделали.
Особой необходимости в них нет.
37 Кб, 556x276
Kotlin #305 #628434
>>619370 (OP)
А что это в шапке нет ничего про Kotlin?
IntelliJ IDEA его поддерживает (и Android Studio, RoboVM Studio тоже)

Kotlin - язык 2011 года разработки, совместимый (в обе стороны) с Java
Из коробки поддерживает: проперти, лямбды, экстеншем методы (как в C#), нормальный дженерик, перегрузку операторов (+,- и тд), в нем НЕТ checked исключений.
В общем очень похож на scale, но проще и всего +400kb к размеру APK (с proguard будет меньше)

RoboVM + Kotlin - отличная замена Xamarin (C# 2001 года уж смотрится архаично по сравнению с Kotlin)

Вот видео (на русском) про язык, от главного разработчика
https://www.youtube.com/watch?v=wjkaPXT_vY4
https://www.youtube.com/watch?v=018n0aXiljc
https://www.youtube.com/watch?v=VU_L2_XGQ9s

P.S.
Разрабатываю на нем уже полгода, могу ответить на адекватные вопросы
#306 #628441
>>628434
Под ведро на нем пишешь?
#307 #628444
>>628434
P.P.S.
Сам я на него перекатился из Xamarin (на Xamarin из нативного Android/Java, когда захотелось делать кросс-платформенные приложение)

Тк Kotlin еще компилируется в JavaScript, то его можно держать
как запасной аэродром на случай если все перейдут в HTML5

>>628441
Под Android и iOS (RoboVM - выходит дешевле через Xamarin )
#308 #628450
>>628434

>В общем очень похож на scale


На Scala конечно

Сразу предупреждаю, в нем нет имплиситов (вместо них экстеншен методы)
и более простой паттерн-матчинг (эдакий switch на стероидах)
#309 #628454
Есть смысл перекатываться из фронтенда в андроид? Где больше денег?
#310 #628465
>>628444

>Под Android и iOS (RoboVM - выходит дешевле через Xamarin )


Вот тут не понял. Так что дешевле выходит? И почему? Явно ксамарин по логике вещей должен быть дешевле.

Алсо поясни за робоВМ. Я так понял если ксамарин дает возможность писать одинаковый код на иос и андроид, то что с робоВм какие плюса и минуса?
Да и какую иде юзать и тд.

>>628434
Оп в треде, т.е. создатель шапки.
Ну на нем можно писать, но тут такой вопрос, как с работой? Я так понимаю что он хоть и может скомпилиться в жабу, но это же дженерик код в любом случае, разве нет?
Вообще и сам думал о котлине какое-то время.

Оставь контакты какие-то на будущее.
Очень интересно пообщаться с человеком пилящим под две платформы.
#311 #628466
>>628454

>Где больше денег?


В фулстеке очевидно, будучи архитектором можно зарабатывать очень много.
#312 #628483
>>628465
Ох лол, так робоВМ дает возможность сразу клепать и на ведро и иос?
#313 #628534
>>628434
Еще одно хипстерское говно без задач. Не будет по нему столько материалов как есть по разработке для ведра на джаве, когда на любой тупой вопрос дает ответ первая ссылка в гугле. "Вместо function можно писать fun, оставшееся время которое Вы бы потратили на дописывание ction можно затратить на зазубривание всего говна, которое мы запихнули в наш язык, вроде объявления переменной 15 разными способами!"
#314 #628540
>>628534
Ну тут хуй знает на самом деле, я вот хотел бы увидеть как котлин в жабу компилится.
Просто если оно взаимозаменяемо то похуй. На котлине и вправду может быть удобнее писать.
#315 #628581
>>628547
Еблантий, какие тебе нужны материалы по Котлину как на джаве, если он использует жаба-инфраструктуру? Описание языка -на оффсайте, вопросы по ведру - в гугле.
#316 #628593
>>628581

>жаба-инфраструктуру


жаба-инфраструктуру и кодовую базу, fixed
#317 #628721
>>628465

>Явно ксамарин по логике вещей должен быть дешевле.


Я имел ввиду саму подписку: 25$/мес = Android+iOS+Continuous Integration (в Xamarin для CI нужна минимум Business подписка)

Время разработки примерно как в Xamarin (на Xamarin Forms все таки быстрее, но имхо это зашквар)

>Алсо поясни за робоВМ


По факту RoboVM это тот же Xamarin, только вместо mono там java-virtual-machine.
Поддержки WP нет, но блин если бы в Microsoft не отказались от проекта Astoria, можно было бы запускать и на WP.

>Да и какую иде юзать и тд.


RoboVM (сделана на базе IntelliJ IDEA), а можно как плагин подключить к AndroidStudio или IDEA (но нужна более дорогая подписка)

>как с работой


Не знаю, пока работаю в небольшой компании - тут приходится вертеться для разработки приложений под разные платформы. Вакансии пока не искал.

>>628483
Ты прав мой юный друг
123 Кб, 949x823
#318 #628755
>>628534
Вот он >>628581 прав - kotlin это только язык, он использует стандартные классы Java/Android API

>>628540
Код на Kotlin компилируется прям в java-bytecode.
Байт код поддерживает описание классов, вот они то и видны со стороны java.

Пример на картинке:
В IDEA можно посмотреть представление любого Kotlin класса в байт коде.
Тут видно, что для пропертей генерятся get/set и что все методы/классы по умолчанию final.
#319 #628780
>>628721

>если бы в Microsoft не отказались от проекта Astoria, можно было бы запускать и на WP


Кстати провожу исследование "можно ли портировать часть Android API на обычную Java".
Это нужно чтобы запускать Android приложения на WP10 (вместо проекта Astoria)
и просто на Window/OS X/Linux без эмуляторов (к примеру для отладки).

Может быть кто нибудь захочет присоединится?

P.S.
Я знаю что у Google есть расширение к хрому которое примерно это же делает.
#320 #628785
>>628755
Та понял что в байткод, но как в джаву превратить этот код?
Разработка не байткодом ведется же, а на джаве спецов больше чем на котлине.

>>628721

>Continuous Integration


Чой-то такое?
#321 #628791
>>628785

>Та понял что в байткод, но как в джаву превратить этот код?


Никак, зачем это?

Вот ты когда подключаешь .jar библиотеку там же нет .java файлов (там только .class байткод),
но твой проект как-то видит классы от туда и может их использовать. Так и здесь.

>Continuous Integration


>Чой-то такое?


Мда, приехали https://ru.wikipedia.org/wiki/Непрерывная_интеграция
#322 #628827
Есть аноны которые пишут в Xamarin? Т.к студентота взял на dreamspark подписку на год. Есть желание выучить c#. Хочется совместить обучение с практикой создания мини-прог для ведра. Шилдт подойдет?
#323 #628837
>>628827

>Есть аноны которые пишут в Xamarin?


Да и мой тебе совет - начни с чего-нибудь одного (либо писать под ведро либо изучать C#)

>Есть желание выучить c#


>Шилдт подойдет?


нашел где спрашивать, с такими общими вопросами тебе в c# тред
#324 #628844
>>628837
Хотелось бы совместить приятное с полезным.
#325 #628927
>>628434

> перегрузку операторов (+,- и тд)


Говно

> в нем НЕТ checked исключений.


Залупа
#326 #628928
>>628755
Бля, этот синтаксис. Будто во времена флеша вернулся.
#327 #628959
>>628791
Ну охуеть, нахуй мне твоя википедия? Я сам не мог ее найти?
Это типа у них свой градл?
#328 #628960
Перегрузка операторов в Kotlin к примеру позволяет
1) Складывать два BigDecimal через +, а не через метод add()
JAVA:
BigDecimal sum = new BigDecimal(2).add(new BigDecimal(4)).add(new BigDecimal(8));
KOTLIN:
val sum = new BigDecimal(2) + new BigDecimal(4) + new BigDecimal(8)
с экстеншен методом можно еще так
val sum = 2.bd() + 4.bd() + 8.bd()

2) Добавлять оператор [] к спискам, сеттам, словарям (а не только как в Java в массивах)
и вызывать не только по int, но вообще почему угодно (к примеру Sting)
KOTLIN:
val map = HashMap<String, String>()
map["string-index"] = "string-value"
val result = map["string-index"]

3) Сравнивать через a > b (a < b, a <= b и тд) любые объекты с методом compareTo()

И главное что это просто методы и их можно добавить как экстеншен к любому
уже написанному (даже final) классу, типа String (он final) или Activity
Больше инфы: https://kotlinlang.org/docs/reference/operator-overloading.html

>>628928
На самом деле синтаксис как в 90% современных (не строго функциональных) языках, типа Scala, Groovy.
Тот же Swift очень похож на Kotlin (хотя и появился на пару лет посже)
#329 #628961
>>628791

>Никак, зачем это?


Затем что твой код могут захотеть перепилить, и на тебе, нужно искать котлин разработчика, которых нету.
#330 #628964
>>628960

>1) Складывать два BigDecimal через +, а не через метод add()


>3) Сравнивать через a > b (a < b, a <= b и тд) любые объекты с методом compareTo()


Да похуй как-то.

>2) Добавлять оператор [] к спискам, сеттам, словарям (а не только как в Java в массивах)


и вызывать не только по int, но вообще почему угодно (к примеру Sting)
Выглядит как пиздец.
#331 #628967
>>628959

>Это типа у них свой град?


Это типа концепция, когда на удаленном сервере (типа Jenkins/Hudson/Team City),
при каждом коммите в репозиторий:
1) Автоматически собирается новый била (у него прославляется версия)
2) Запускаются юнит-тесты
3) Всем заинтересованным людям на почту рассылаются отчеты о сборке/тестах
4) Если предыдущие пункты успешны, то тестировщикам рассылаются готовые билды

В случае ошибки ты сразу понимаешь после какого комета она произошла, плюс экономия твоего времени.

Через gradle, maven, ant, msbuild - абсолютно пофиг (хоть через bash скрипт)

>>628961
Ну так не ищи, пиши на Java
#332 #628969
>>628967
Понял, спасибо.

>Ну так не ищи, пиши на Java


А перепиливать существующие классы как, я тебя спрашиваю?
А так хуй знает, я бы переехал на котлин, но как минимум у нас его редко юзают. Хотя за бугром может и чаще, все топ либы имеют примеры на котлине.
#333 #628983
>>628960
Все "фичи" намекают на то что эта параша создавалася для js-макак, чтоб они слезли с дерева и начали уже пилить хоть что то полезное без необходимости переучиваться на нормальный яп. Не зря еще трансляция в жс присутствует.
#334 #628985
>>628964
>>628983
Бедный дети, не видевшие ни одного языка кроме Java.

Перегрузка операторов - это способ сделать код короче и более читаемым.
Очевидно что это не значит что нужно его везде пихать, всему свое место.

Кстати перегрузка == очень полезна, с нем к примеру можно
сравнивать две строки по содержанию (без intern() изврата)

Во многих JMV языках (scala, groovy, clojure) есть перегрузка операторов.
Да и не только https://en.wikipedia.org/wiki/Operator_overloading#Catalog
Блин даже в iOS Swift она есть.

P.S.
Я просто прусь с вас - им предлагают язык 2011 года, нет они хотя 1994.
#335 #628998
>>628985

> Перегрузка операторов - это способ сделать код короче и более читаемым.


Слишком сложно для индусов же.

"Всего, чего нет в жабе, автоматически объявляется хуитой, как только это появляется в жабе, это автоматически становится нехуитой. При этом, требуется сделать вид, что хуитой это называл кто-то другой." (c)
#336 #629019
>>628985

>им предлагают жрать говно, это модно и полезно


>не жрут



>>628998
Тут тред про ведроид. Зачем тащить в ведро функциональщину и перегружаемые операторы, если миллиарды приложений и игр успешно сделаны без этого?
Kotlin (часть 2) #337 #629025
Еще немного фактов:

• Определение типа переменной самим компилятором
var a = File("/file") // a - типа File
var b = HashSet<String>() // тип b HashSet<String>
если нужно явно задать тип, то это делается так
var c: Set<String> = HasрSet() // второй раз дженерик указывать не нужно

• Защита от NullPointerExcaption (NPE) на уровне языка
Все типы могут быть в двух состояниях: nullable и not-nullable
var a: String = ""
a = null // НЕ скомпилируется
a.toString() // скомпилируется

var b: String? = null
b = null // скомпилируется
b.toString() // НЕ скомпилирует
b?.toString() // скомпилирует, если b == null, то toString() не вызовется
b!!.toString() // скомпилирует, если b == null, то произойдет NPE

• Отдельные типы для изменяемых коллекция (MuttableList, MuttableSet и тд) и неизменяемых (List, Set, Map и тд)
В неизменяемую коллекцию нельзя добавлять новые элементы (компилятор не разрешит)

• Нет оператора new
var s = FrameLayout(this, null)

• Неизменяемые (val) и изменяемые (var) переменные
var a = "alice"
a = "bob"

val b = "alice"
b = "bob" // не скомпилируется

• В конце строки не надо ставить ;

Еще видео о языке от его разработчиков:
Андрей Бреслав
(рус) https://www.youtube.com/watch?v=9x6utkLDBs8

Светлана Исакова
(рус) https://youtu.be/mTr8TWj9MUU?t=45m30s - на конфиренции Scala разработчиков (на удивление спокойно отнеслись к языку)
(рус )https://www.youtube.com/watch?v=IXFIUF_KW_o
(eng) https://www.youtube.com/watch?v=dJscNr1silY
(eng) https://www.youtube.com/watch?v=50lASllvG3Q
Kotlin (часть 2) #337 #629025
Еще немного фактов:

• Определение типа переменной самим компилятором
var a = File("/file") // a - типа File
var b = HashSet<String>() // тип b HashSet<String>
если нужно явно задать тип, то это делается так
var c: Set<String> = HasрSet() // второй раз дженерик указывать не нужно

• Защита от NullPointerExcaption (NPE) на уровне языка
Все типы могут быть в двух состояниях: nullable и not-nullable
var a: String = ""
a = null // НЕ скомпилируется
a.toString() // скомпилируется

var b: String? = null
b = null // скомпилируется
b.toString() // НЕ скомпилирует
b?.toString() // скомпилирует, если b == null, то toString() не вызовется
b!!.toString() // скомпилирует, если b == null, то произойдет NPE

• Отдельные типы для изменяемых коллекция (MuttableList, MuttableSet и тд) и неизменяемых (List, Set, Map и тд)
В неизменяемую коллекцию нельзя добавлять новые элементы (компилятор не разрешит)

• Нет оператора new
var s = FrameLayout(this, null)

• Неизменяемые (val) и изменяемые (var) переменные
var a = "alice"
a = "bob"

val b = "alice"
b = "bob" // не скомпилируется

• В конце строки не надо ставить ;

Еще видео о языке от его разработчиков:
Андрей Бреслав
(рус) https://www.youtube.com/watch?v=9x6utkLDBs8

Светлана Исакова
(рус) https://youtu.be/mTr8TWj9MUU?t=45m30s - на конфиренции Scala разработчиков (на удивление спокойно отнеслись к языку)
(рус )https://www.youtube.com/watch?v=IXFIUF_KW_o
(eng) https://www.youtube.com/watch?v=dJscNr1silY
(eng) https://www.youtube.com/watch?v=50lASllvG3Q
#338 #629028
>>629025
Важная часть про видео не уместилась на экране

Еще видео о языке от его разработчиков:
Андрей Бреслав
(рус) https://www.youtube.com/watch?v=9x6utkLDBs8

Светлана Исакова
(рус) https://youtu.be/mTr8TWj9MUU?t=45m30s - на конфиренции Scala разработчиков (на удивление спокойно отнеслись к языку)
(рус )https://www.youtube.com/watch?v=IXFIUF_KW_o
(eng) https://www.youtube.com/watch?v=dJscNr1silY
(eng) https://www.youtube.com/watch?v=50lASllvG3Q
#339 #629035
>>629019

>Тут тред про ведроид. Зачем тащить в ведро функциональщину ...


Что я понял за почти пять лет разработки под Android:
1) Бесполезно сражаться с будущем
Kotlin объективно удобнее и на него все перейдут, ты можеш сделать это чуть раньше.

Альтернативы пока нет:
• C#, Scala, HTML5 - слишком тяжелые для Android
• (слухи) У Google пока только в планах перейти на OpenJDK для поддержки Java 8

2) Чем меньше напишешь кода сегодня, тем меньше его переписывать (читать) завтра
Kotlin позволяет писать короткие и понятные программы.
Может быть тебе это не нужно, ты написал и забыл, но крупные мобильные проекты поддерживаются годами.
#340 #629045
>>629019
Зачем вообще создали жяву, если миллионы приложений на C++ и без того нормально работали? Зачем вообще создавался C++, если сотни тысяч приложений на си, фортране и коболе нормально работали? Зачем вообще всё это говно создавали, когда программы на вм Бэббиджа нормально работали?
#341 #629073
>>629045
Затем что крестопараша для петухов.

>>629035
1) Вот когда будущее наступит тогда и приходи. Продал родину за возможность не писать точку с запятой, пидор.

2) Программы получаются короткие, но нихуя не понятные. a + b - b - a -> foo(bar() <- hui : pizda) = c, и сиди разбирай чего добивался этим высером хипстер, работавший до тебя.
#342 #629096
>>629073

>a + b - b - a -> foo(bar() <- hui : pizda) = c


вот тут ты обосрался, трольченок, нет такого синтаксиса в Kotlin
#343 #629102
Знаешь, /зк, по-моему, я схожу с ума...
Дело в том, что иногда по ночам мне кажется, что я яваблядь. Мне хочется выделять память, зарабатывать на доширак, пиздеть про энтерпрайз, сваливать свои проблемы на чужие плечи и писать нечитаемый бессмысленный говнокод.
Я ворочаюсь, страдаю, рычу, а под конец вскакиваю с кровати и хватаю первое, что попалось под руку.
Это может быть тапок, топор или простая поварешка, но в моем воображении она становится огромным прожорливым интерпретатором.
С этим интерпретатором я открываю корпус сервера, ставлю ещё две планки оперативной памяти и с громким боевым кличем выбегаю на улицу. Я бегаю под окнами своих соседей и ору: "Ява не тормозит, тупые нищебляди!! Купите нормальное железо!!"
Но они не покупают... Они привыкли.
И когда я уставший, но довольный, поднимаюсь в квартиру, наоравшись и набегавшись, одна из дверей открывается. Там, лукаво сверкая глазенками, стоит маленький соседский мальчик Женька. Он громко шепчет беззыбым ртом "Клоссплатфолменность!" и ободряюще мигает мне одним глазом.
Я, улыбаясь ему, прохожу мимо, и в душе моей поют заказчики.
А дома я открываю бутылку водки, морщась, выпиваю ее до половины, и ловлю кота. Ругая этого "сраного волосатого индуса", я сажаю его за клавиатуру, и чтобы он не убежал, приматываю его к ней скотчем.
А дальше все просто.
Я стою у окна, пуская скупую быдлокодерскую слезу по своей прыщавой щеке , и мечтаю. Я представляю, что огни домов -- это пламя костров, на которых сжигают крестопидоров, шум машин -- это рев кулеров в серверных, а в мире нет ничего, кроме великого энтерпрайза и нас, яваблядей...
И я жду, что вдруг, вот сейчас, в мою дверь войдет начальник и скажет: "Эй, раб, ты чо так так долго? Давай, быстро дописывай исходник. Похуй, если будет тормозить - разберутся те, кто будет сопровождать! ГА-га-га-га!" И ободряюще хлопнет меня по спине.
И тогда не будет в мире счастливее человека, чем я... Точнее, явабляди.
Что же мне делать, анон? Что же мне делать?
#344 #629130
>>629102

>Что же мне делать?


Переходить на котлин.
#345 #629146
>>628960

> Перегрузка операторов в Kotlin к примеру позволяет


С++ один из моих нелюбимых языков. Одна из основных причин - наличие этой самой перегрузки операторов. С этой хуитой логичность и интуитивность кода резко снижается, появляется необходимость изучения того, что делают эти операторы, а это порой пиздец как не логично.
Это высокая цена за сомнительное удобство. Всего лишь сокращение когда в ширину, не более.
#346 #629148
>>629146
Ты туповатый просто. Почитай про концепцию программирования через интерфейс, тогда поймешь, зачем это надо.
#347 #629149
>>629148

> Ты туповатый просто.


Нормально так на личности перешёл.
#348 #629153
>>629146
Я так понимаю Clojure, Scala, Groovy, Ceylon, C#, Python, Ruby тебе по тойже причине не нравятся?

В Kotlin очень не большой список операций и они в общем очевидны.
Да и в отличие от тоже же Scala или Clojure - нельзя создавать новые.
#349 #629154
>>629146>
Ну да, лучше сравнивать сроки через .equals, конечно
#350 #629155
>>629153

> Я так понимаю Clojure, Scala, Groovy, Ceylon, C#, Python, Ruby тебе по тойже причине не нравятся?


Я на них никогда не писал, так что не знаю. Но если там такое есть - то, пожалуй, да.
#351 #629156
>>629154
Не вижу в этом ничего особо плохого. А вот то, что строка не может быть null - реально хуёво, судя по тому, что выше написали.
#352 #629157
>>629156

>А вот то, что строка не может быть null - реально хуёво


Может если ты поставишь ей тип String?, а не просто String
(но тогда тебе придется расхлебывать случаи NPE самому)

В той же Java 8 ввели тип Optional<T> для разруливания таких ситуаций,
но только для его использования нужно туже строку постоянно заварачивать/разварачивать в/из него.
#353 #629163
>>629146
Ну поясни, что именно такого непонятного, неосилятор. В плюсах можно перегружать ограниченное кол-во операторов, в отличие от той же скалы и прочих, позволяющих создавать свои.

Вот есть у тебя класс, с перегруженными операторами сравнения. Как от этого испортится понимательность кода? Не даст тебе, ваську, отделить примитив от объекта?
73 Кб, 372x738
10 Кб, 231x129
Java vs Kotlin #354 #629166
На картинках один и тот же класс на Java и Kotlin.

Плюс (благодаря аннотации data) у класса на Kotlin автоматически сгенерированы методы
toString(), equals(), hashCode() (и еще парочка ускоспециальных)
#355 #629167
>>629163
Непонятно, что >/< это compareTo. А может и вовсе нет. Тогда как название метода точно отражает суть операции. Так что да, приписывать структурам данных операции с примитивами - хуёво.
#356 #629174
>>629167
Ты понимаешь что проблему из пальца высасываешь?
В той-же IDEA ты можешь навести курсор на оператор и тебе откроется его метод.

Блин как сложно объяснять это тем кто не видел ничего кроме Java.
В той же Scala все пиздец как сложнее из-за implicit (а ты даже не знаешь что это).
#357 #629175
>>629167
Суть в том, что сравнивать объекты по значению без перегруженных операторов тебе не позволит ни один язык ну в сишечке такие как ты любят сравнивать адреса указателей :)).
Если у тебя код вида
Hui hui1, hui2;
..
if(hui1 > hui2)
Абсолютно очевидно что здеся должно происходить. Если не очевидно - ты не знаешь языка.
#358 #629178
Какой смысл спорить какой язык лучше? Если вакансий для Kotlinа нет. Не считая, в JetBrains и то, как придаток к Java.
#359 #629180
>>629174

> Блин как сложно объяснять это тем кто не видел ничего кроме Java.


Откуда ты знаешь, какие языки я видел и не видел?
Ну кроме моего ответа на тот список выше, что не достаточно для таких заявлений.

> (а ты даже не знаешь что это).


И это хорошо. Я не занимаюсь изучением новых языков просто "по фану", мне это неинтересно.
#360 #629186
>>629178
Выучить больше одного языка это непосильная задача для анонимуса?
(я неспешно выучил за пару дней, просто смотря youtube)

Плюс как в iOS ты можешь миксовать Object-C + Swift, так и Android
ты можешь смешивать Java + Kotlin (он для того и разрабатывается что бы медленно
переводить большие проекты на современный язык, а не переписывать их с нуля)

>>629180

>Откуда ты знаешь, какие языки я видел и не видел?


Ну по крайне мере я там перечислил почти все JVM языки + популярные сейчас в IT

>Я не занимаюсь изучением новых языков просто "по фану", мне это неинтересно


Странно я думал программисты любят узнавать новое, расширять кругозор (по крайней мере молодые).
И вот зря, из других языков можно черпать интересные концепции / подходы / целые паттерны.
#361 #629187
>>628985
Имелось ввиду что это нововведение не дает нихуя.
Ну правда я думаю в котлине есть что-то лучше чем перегрузка операторов. Обычный синтаксический сахар, да и не самый полезный.
#362 #629188
>>629025

>Все типы могут быть в двух состояниях: nullable >и not-nullable


>var a: String = ""


>a = null // НЕ скомпилируется


>a.toString() // скомпилируется


А как мне дать понять что объект мне больше не нужен?
#363 #629191
>>629186

> Ну по крайне мере я там перечислил почти все JVM языки + популярные сейчас в IT


Далеко не все, не надо так. К тому же область применения этих языков слишком разная, андроид-программисту питон нахуй не нужен, например.

> Странно я думал программисты любят узнавать новое, расширять кругозор (по крайней мере молодые).


Я как-то вырос из этих игр. Язык изучается по необходимости. До тех пор я сосредоточен на задаче, а это всегда интереснее.
#364 #629195
>>629166
Чой-то на котлине нету выбора геттер или сеттер делать?
А вообще стандартная генерация этой хуйни. Опять не сильно нужный синтаксический сахар.
Лучше бы на стримы и лямбды из коробки давил.
#365 #629196
Прошел собеседование
@
Берут на работу
@
Пишешь на котлине вместо джавы
@
На первом код ревью дают в морду и выкидывают на мороз
#366 #629198
>>629188
>>629187
>>629195
Ебать ты дефектное.

>Я как-то вырос из этих игр. Язык изучается по необходимости. До тех пор я сосредоточен на задаче, а это всегда интереснее.


Так и скажи:
а) я джявист в синей рубашке, кроме жявы ничо не знаю;
б) я нюфаг с ловкими маняврированиями.
#367 #629207
>>629198
Я другой анон. И первый вопрос меня действительно интересует.

>А как мне дать понять что объект мне больше не нужен?


Вот даже повторил тебе уебану.
Сделал я глобальную переменную, тот же битмап. Но вот он мне не нужен. Каким хуем я обнуляю ссылку на него?

Я даже за котлин, много синтаскического сахара и намного лучше чем апач хармони который хуже обычной джавы.
Но ты отбиваешь все желание своим петушьим поведением.
#368 #629211
>>629207
https://kotlinlang.org/docs/reference/null-safety.html
Как можно хотеть помогать челику, который не в состоянии открыть гугл? Уёбывай отсюдова.
#369 #629212
>>629187

>Обычный синтаксический сахар


Вот это точно не СХ:
• концепция not-nullable типов
• immutable объекты и колекций
• мощный type inference (в Java тоже над этим работают, в 8 гораздо лучше стало)
#370 #629215
>>629188

>А как мне дать понять что объект мне больше не нужен


А зачем? Может ты не в курсе но в Java есть Garbage Collector.
GC и так его очистит когда он больше ненужен будет.

Только не говори что ты в Java переменные и филды зануляешь для экономии памяти.
(А если тебе это нужно делай их nullable var a: String? = null)
#371 #629219
>>629198

> Так и скажи:


> а) я джявист в синей рубашке, кроме жявы ничо не знаю;


> б) я нюфаг с ловкими маняврированиями.


Почему меня цитируешь, а ссылки не на мои посты?
Я тебе уже всё сказал. А иметь разговор с человеком, который первым делом переходит на личности и додумывает за собеседника, мне совершенно неинтересно. Всего хорошего.
#372 #629220
>>629207
>>629215
Ты не забыл что это анонимный форум, тут сразу насколько анонов отвечат.

>Сделал я глобальную переменную, тот же битмап.


Я не ругаюсь, но начнем с того, а зачем ты сделал его глобальной переменной
(не очень реалистичный пример)

Неизменямыми объектами нужно делать то что тебе нужно на протяжение всей работы
(в этом их смысл) и ты не хочешь словить NPE

Повторюсь сделай его тогда изменяемым:
MyGlobalBitmap: Bitmap? = null
#373 #629222
>>629211
Сказал А говори и Б.
Так блять с таким успехом ты мог просто дать ссылку на доку не? Нахуй вбросы кусков кода вообще? Все в доке же.
>>629220

>Я не ругаюсь, но начнем с того, а зачем ты сделал его глобальной переменной


>(не очень реалистичный пример)


Ой да ладно.
У меня идет генерация на карту двух картинок на которых я рисую.
Т.е. я подтягиваю два битмапа шаблона в хендлер, и с них уже делаю битмапы для рисовки. И да это быстрее чем тянуть иммутейбл битмап с диска а потом делать его мутейбл.

Да уже в доке прочитал про изменяемый.
#374 #629225
>>629215

>А зачем? Может ты не в курсе но в Java есть Garbage Collector.


>GC и так его очистит когда он больше ненужен будет.


А в котлине гарбадж коллектор читает мои мысли?

>Только не говори что ты в Java переменные и филды зануляешь для экономии памяти.


С битмапом это довольно важная хуйня.
Да и это нормальная практика для сложных обжектов. Те же адаптеры с фрагментами. Но кому я блять объясняю.
Аноним #375 #629226
>>629220
Немножко спутал сам себя:

Изменяемость / НЕ изменяемость задается префиксом:
var a // a изменяемая переменна/проперти
val a // a НЕ изменяемая переменна/проперти

Nullable / Not-Nullable типы делаются:
var a: Bitmap = Bitmap(4,4,Config.ARGB) // переменная a НЕ может содержать null
var a: Bitmap? = null // переменная a может содержать null

>>629222
>>629225
Нормальная практика это использовать LruCache
#376 #629230
>>629222

>Так блять с таким успехом ты мог просто дать ссылку на доку не? Нахуй вбросы кусков кода вообще? Все в доке же.


А нахуй вообще что-то самому делать? Может мне за тебя подрочить и зубы тебе почистить?
Аноним #377 #629231
>>629226
Нормальная практика это использовать LruCache, а не хранить в стических полях Bitmap
#378 #629232

>>kotlin@user


Оч смешно, моча.
#379 #629233

>>kotlin@user


Оч смешно, моча.
#380 #629234

>>kotlin@user


Оч смешно, моча.
#381 #629236
>>629231
В каких статических ебанат? Обычные глоабльные поля в холдере.
#382 #629237
Извеняюсь за спам pidori :3, интернет лагнул.
#383 #629238
>>629230
Можешь и подрочить.
Аноним #384 #629241
>>629236

> Обычные глоабльные поля


что ты несешь?
#385 #629242
Сосаны, я так понял что бы получить внешний IP адрес девайса нужно обязательно спросить какой-то сайт, типа www.whatismyip.com . А то вроде попробовал почти все решения, а они выдают что-то уровня 192.168.1.104 или 10.0.1.2
#386 #629243
Тут приложения на андроид кто-нибудь делает? Или только на kotlinе кодите?
#388 #629245
>>629242
наверное только так

>>629244
На врядли так можно получить ip адресс за роутером
#389 #629246
>>629241
Не слышал про глобальные поля? Вообще ебанулись чтоль?
203 Кб, 794x775
#390 #629248
>>629246
жирный, угомонись уже
#391 #629249
>>629244
Вот ты хоть прочитал? Я же написал что попробовал все хорошее, это отдаст 192.168.1.104 в сети с роутером.
#392 #629250
>>629243
Что вы так на котлин кинулись? Все тут пишут на джаве, 1 человек на котлине и 1 на ксамарине.
#393 #629252
>>629248
Доебался, так доебался. Но даже так, никто не говорил про статики которые ты себе придумал.
#394 #629253
>>629243
>>629250
Так котлинопидор всех доебал просто.
А так котлин норм мне кажется.
#396 #629259
>>629256
Еще яву покажи.
Аноним #397 #629270
>>629253
Ну и на том спасибо :)
#398 #629275
>>629270
Та толку если на нем работы нету. Перекатится в котлин = лишить себя работы и писать неподдерживаемый другими код.
#399 #629292
>>619948
Это невозможно
#400 #629315
>>619948
С зоны капчуешь?
Kotlin лямбды и стримы kotlin@user #402 #629345
>>629195 Насчет стримов и лямбд
Лямбды https://kotlinlang.org/docs/reference/lambdas.html
Есть и синтаксис у них примерно как в Groovy или Swift

Пример метода принимающего лябду:
fun execute(a: Int, b: Int, c:Int, operation: (Int, Int, Int) -> Int) {
return operation(a, b, c) // лямбду вызываешь как обычный метод
}

Пример вызова этого метода: execute(1, 2, 3, { a, b, c -> a b c })
Если лямбда последний параметр то можно: execute(1, 2, 3) { a, b, c -> a b c }

Стримы https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-list/
В отличие от Java для базовых операция над коллекциями не нужен специальный
класс Stream тк есть нормальные extensions-методы (в этом плане Kotlin ближе к C# с его Linq).

val z = listOf(1, 2, 3, 4)
.map({ s -> 2 s }) // эти три строчки идентичны
.map { s -> 2
s } // эти три строчки идентичны
.map { 2 * it } // эти три строчки идентичны
.filter { it >= 16 }
.sum()

Для lazy операций есть специальный Sequace https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-sequence/
#403 #629373
>>629331
Так толку?
По-факту из ваябл только ксамарин и 4 технологии на джаваскрипте.
РобоВм на хуйдой конец.
Котлин как бы вообще язык и к технологиям выще не относится и юзает стандарт сдк.
Все.
#404 #629374
>>629373

>выше.

#405 #629377
>>629331
А ну и база даных либо SQLite либо Реалм.ио.

А вообще можно делать подобное дерево по всяким либам.
Типа ормки или многопоточка. Но тут мне опыта не хватит запилить нормальный обзор. Та и мало у кого вообще хватит. В основном пересказываем статьи и тд.
#406 #629415
Есть ли какие-нибудь гайды для дебилов по написанию j2me змейки?
#407 #629419
#408 #629435
>>629377
Почему в богомерзком Xamarin есть EntityFramework 7 и я могу с sqlite работать как с обычной колекцией в памяти.

А в Android только сырой SQL, либо сраные билдеры запросов (realm.io, ormlite)?

Почему нет такой либы что я мог (как стримы):

db.filter(s -> s.age > 18).sortBy(s -> s.name).take(10)

У меня бомбит в итоге сам подобное написал
#409 #629444
>>629435
Берешь cupboard либо любую орм и не ебешь нам мозги.
ЕнтитиФреймворк как раз орм может и нет но это надстройка уровня орм

>realm.io


Вообще база на плюсах и отдельный разговор.

>ormlite


Вот уже ближе.

Я хуй знает чем тебе орм не понравился, впадлу прописать строчку которая отдаст коллекцию обжектов?
#410 #629452
>>629373
Ну не скажи.
Удобно, готовишься такой с собеседования, открываешь эту майнд-мап и идешь по каждой ветке, по каждому названию, если понимаешь что сможешь минуть 20-30 рассказывать про эту тему взахлеб, значит наверно знаешь про что речь.
#411 #629459
>>629452
Я считаю, надо. Кстати что за ресурс чтобы эти майндмапы
Я вот тут по памяти накидал, но что-то маловато думаю.
https://atlas.mindmup.com/2016/01/94f97b50a1000133787e49e1d84f8256/android/index.html
#412 #629461
>>629415
Как там, в 2005?
#413 #629464
>>629444
1) сравни, пример с сайта:
realm.where(Dog.class).equalTo("name", "Rex").and().equalTo("city", "Moscow").findAll()

2) против (так я работаю со List<Dog> в Kotlin):
Dogs.filter { it.name == "Rex" && it.city == "Moscow" }

3) В EnityFramework7 это будет:
Dogs.Where(s => s.name == "Rex" && s.city == "Moscow")

(2) и (3) почти идентичны, вот так должны белые люди делать запросы к базе.

P.S.
Еще и имена полей в билдере пишутся прям строкой ("name"). Можно конечно константой,
но лучше не станет.

P.P.S.
Извинити что отвлек, просто я через это уже прошел (ormlite, ef).
Сейчас мне легче хранить (серелизованные) данные в файлах чем мучится с sqlite схемой.

>>629461
Может он embeded занимается :)
#414 #629486
>>629461
Мне это всё чисто для галочки нужно, так что никак, лол.
#415 #629543
>>629464

>realm.


Так это уже трабла риалма а не всего остального.
На cupboard выборка более стандартная вроде.
Но там не будет как на шарпах, так как джава этого не позволяет пока.

>в Kotlin


Куда ты котлин еще припаял? Я уже не понимаю что ты хочешь.

>В EnityFramework7 это будет:


Это лямбдой будет. С переопределенными операторами. Удобство уровня я ебу.

Ты еще доебись что в джаве дженерики не такие красивые и юзабильные как в шарпах, чего уж там.

>чем мучится с sqlite схемой


Мучится? Сириусли? Орм ему не нравится, со стандартной работой sqlite ему мучатся. Может ведро не твое тогда?
Ладно еще соглашусь что описывать все без орм реально долго, особенно с контент провайдером. Но орм облегчает тебе жизнь, а то что ты пытаешься доебаться до джавы в которой мало синтаксического сахара приводя в пример язык блять 2013 или когда там котлин релизнули года и шарпы которые в принципе моложе и главное не имеют обратной совместимости.

Спасибо за внимание иди нахуй.
#416 #629544
>>629452
Если ты про технологии на каких писать можно то тут фейл, ты вменяемого ничего не напишешь без нормальной практики.

>>629459
С либами лучше, но тут хуйово, у тебя джексон на равне со сборщиком-градлом, это не либа блять.
#417 #629626
Наткнулся на апликуху, которая в определенных апликухах добавляет свой маленькую кнопочку. Попросту поверх активити апликухи.
Я даже никогда не слышал про подобное.
Подскажите в какую сторону смотреть?
The Busy Coder’s Guide to Android Development #418 #629657
Сап, андроны. Полистал я эту вашу The Busy Coder’s Guide to Android Development, годнота годнот. Но в интернетах одно старье, хотя автор уже запилил 7-ую версию с SDK6.

Сходил я на https://commonsware.com/warescription, годовая подписька (включает все обновления) стоит СОРОК ПЯТЬ БАКИНСКИХ, что в новых реалиях слишком дохуя. В связи с чем предлагаю скинуться. Заявки принимаются неделю (до 27.01) по адресу: 29otbcgtadANUSyandM&6exPUNCTUM`]:ru. Указывайте потолок, который готовы выложить (лично я готов потратить $5-7 из своих $19 стипухи). Если есть знакомые ведродевелопы -- зовите.

Все принявшие участие будут получать обновления как только они будут выходить (или пока какой-нибудь крысакун не скинет книжку в сеть и нашу подпиську аннулируют -- лицензии у книжки именные.)
223 Кб, 1280x960
#419 #629725
>>619370 (OP)
Аноны, пилю клавиатуру без активити. Нужно, чтобы при клике на Key он менял изображение. Нихуя не пойму в http://developer.android.com/intl/ru/reference/android/inputmethodservice/Keyboard.Key.html Помогите разобраться.
#420 #629786
Я пока ньюфаг и тут у меня мысль проскочила. Вот я учу:
1. Java Core
2. Собственно конкретно разработку под андроид
3. SQL
Неужели на этом все? Ну то есть обычно в большинстве ЯП для работы надо знать пачку фреймворков и сопутствующих технологий. А что с андроидом, что еще надо знать в добавок к тому что я перечислил, что бы быть нормальным разработчиком?
#421 #629787
>>629786
Клиент-сервер, JNI, etc. Зависит от того, чем ты будешь заниматься.
Фреймворков действительно толком никаких нет, а те, что есть - уже совсем далеко от джавы (типа хамарина).
#422 #629835
Анон, меня тут осенило получается NDK через JNI работает?
#423 #629840
>>629835
Внезапно. Не совсем.
#424 #629893
>>629786
Уверяю не все так просто. Тулить говнокод ты сможешь, но в ведре проблема с постоянной обновой сдк и постройкой ровной архитектуры. А это внезапно самое сложное.
#425 #629895
>>629626
Бамп.
#426 #629910
>>629895
>>629626
1) Тебе нужна будет пермишен (в AndroidManifect)
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

2) Берешь WindowManager (обязательно у Application, тк активити его перегружает)
WindowManager wm = getContext().getApplicationContext().getSystemService(Context.WINDOW_SERVICE);

создаешь View которую будешь показывать поверх других окон
(это обязательно должно быть View, с активити/фрагментом это не прокатит)
Button myButton = Button(this);

создаешь специальный WindowManager.LayoutParams и проставляешь им тип TYPE_SYSTEM_ALERT
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(...)
lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT // вот это самое важное


Добавляешь свою View в WindowManager
wm.addView(myView, lp)
#427 #629913
>>629786
Ну можешь еще подкачать RxJava, Retrofit, Protobuf
(ну и конечно Kotlin - с ним ты откроешь новый чудный мир)

А так-же все по юнит тестам, типа Mockito, NUint4
#428 #629920
>>629910
Спасибо большое, попробую
#429 #629923
>>629913

>Protobuf


Так и не понял зачем он нужен.

>юнит тестам, типа Mockito, NUint4


Ты их в проектах юзаешь? Приходится делать особенную архитектуру и тд? Читал что с тем же даггер2 лучше.

Алсо, поясни сколько у тебя опыта? Кой-то веки кажется в тред кто-то опытный залетел.
#430 #629961
>>629923

>Так и не понял зачем он нужен.


замена json/xml с высокой скорость кодирования

>Ты их в проектах юзаешь?


Да, тестами покрывать надо и Android приложения

>риходится делать особенную архитектуру и тд? Читал что с тем же даггер2 лучше.


По моему ты слегка запутался, Dagger2 это фреймворк для DI.
Ты можешь через него моки подставлять, но для их создания тебе как-раз нужен Mockito.
JUnit это вообще движок для написания тестов (перепутал слегка название с C# NUnit)

Вообще мне эти dagger2 (roboguice) уже надоели, сейчас у меня период
ручного подставления зависимостей в конструктор.

--- несколько лет в Android разработки
#431 #629963
>>619370 (OP)
Есть здесь хипстеры, тргавшие react native под Android?
#432 #629964
>>629543

> Куда ты котлин еще припаял?


Потому-что всю Java-хуйню как-раз исправляет Kotlin.
Но даже с ним как-то лучше не становиться в плане удобства работы с базой.

>Может ведро не твое тогда?


Четыре года опыта на android, чуть меньше в ios, wp, xamarin, robovm - все время ищу ИДЕАЛ для удобства разработки.

>Ладно еще соглашусь что описывать все без орм реально долго


Ну хоть в чем-то мы согласны. Наверное и тебе через пару лет надоест каждый раз
писать однотипный код, когда есть отличное API (лямбды/Stream) для работы с коллекциями.
#433 #629966
>>625711

> За что вы так ненавидите Xamarin


Платная хуйня + сайту видно, что они в первую очередь хотят впарить свой продукт менеджерам, а не разработчикам.
#434 #629980
>>629964

>Ну хоть в чем-то мы согласны. Наверное и тебе через пару лет надоест каждый раз


писать однотипный код, когда есть отличное API (лямбды/Stream) для работы с коллекциями.
Вполне может быть. Но меня больше беспокоит дырявость самого ведра. Говно лезет практически отовсюду, новая версия ведра = новые саппорт либы = новые баги. Сидишь просто дрочишь стековерлоф 24/7 вместо того чтоб код учится писать.
#435 #629983
>>629964
Ну и еще добавлю что в скорейшем времени нам таки дадут и лямбды без костылей типа ретролямбда и стримы.
#436 #629986
>>629961

>замена json/xml с высокой скорость кодирования


Понял спасибо, правда не особо пока юзабилити понимаю. Но почитаю на досуге.

>Да, тестами покрывать надо и Android приложения


Только рад бы, правда еще не умею, так как не приходилось делать/ та и в шею гонят постоянно. Алсо, если можешь поделится каким материалом по сабжу будем рады, пора шапку обновлять уже знаниями поглубже.

>По моему ты слегка запутался, Dagger2 это фреймворк для DI.


Ну так разве DI не требует особой архитектуры?

>JUnit


Ага стандартный джавовский.

Алсо, почему-то попадаются разрабы которые клали и на DI и на тесты, какбуд-то бы даже не пытаются что-то новое выучить. Хуй что вытянешь из них.

---- меньше года в разработке.
#437 #629990
>>629964

>Четыре года опыта на android, чуть меньше в ios, wp, xamarin, robovm - все время ищу ИДЕАЛ для удобства разработки.


Мне стойко промывают мозги что иос попросту лучше для самого разработчика чем ведро?
Так ли это как думаешь? Все кричат что разработка быстрее, меньше багов и подводных камней. Сам не пробовал так как ни мака ни гейфона, а ебенить через виртуалки не хочу.
#438 #630003
>>629990
Да, на иос легче. Там в разы меньше ебли с жизненными циклами. У меня друг полную хуйню говнокодит вплоть до описания сетевых запросов прямо во вьюконтроллерах. При этом нихуя не падает и все ок.
#439 #630015
>>629913

> Protobuf


Петушня.
Thrift/Avro/Hessian гораздо лучше.
#440 #630019
>>630003

>У меня друг полную хуйню говнокодит вплоть до описания сетевых запросов прямо во вьюконтроллерах.


Так с ретрофитом так и делают, в колбеках удобно с UI работать, враперы только мешают.

>Да, на иос легче.


А чего с концами не перекатился тогда?
#441 #630022
>>630015
В каких случаях это вообще может пригодится?
#442 #630023
>>629990
На иос меньше фрагментации, не нужно выяснять, почему твое приложение глючит на нонейм поделке от китайского Васяна стоимостью 1000р. И не нужно делать дизайн под миллиард разных разрешений экрана.
#443 #630025
>>630022
Когда большие объёмы данных по сети нужно передавать. Но что-то мне подсказывает, что для Android приложений это не актуально.
#444 #630054
>>630015

>Protobuf


>Thrift/Avro/Hessian гораздо лучше


сорт оф отличных фрейморков для серилизации

>>629990
По последней статистике (пруфы потерял) разработка на Android это +30% к времени на iOS
(с учетом тестирования и багфикса)
А вот по моим наблюдениям (пару лет назад) скорость разработки (в нативе) примерно одинаковая

С появлением Swift (наверно) разработка под iOS станет еще удобнее/быстрей.
И кстати Swift на 90% по синтаксису схож со Swift (те же var/val, non-nullable типы, лямбды,
перегрузка операторов, stream-подобный синтаксис работы с коллекциями т тд)
#445 #630061
>>630054

>И кстати Swift на 90% по синтаксису схож со Swift


И кстати Swift на 90% по синтаксису схож со Kotlin
#446 #630064
>>630054

>С появлением Swift (наверно) разработка под iOS станет еще удобнее/быстрей.


Да хуй знает, у меня пока написание кода занимает намного меньше времени чем дрочь с подводными камнями и проектирование моего говнокода.
#447 #630077
>>630061
Лолшто. Они похожи системой типов с ? и !.
Остальные фишки вроде паттерн матчинка и остального синтаксиса были в куче языков ещё 10 лет назад.
#448 #630079
>>630064
Дык оно всегда так было и будет. Для этого обычно сначала прототипируют всё на скриптопараше в процедурном стиле и используют всякий mindmaps.
#449 #630080
>>630079

>всякий


е*
#450 #630091
>>630077
Блин хотел написать, что они оба сперли синтаксис у других языков,
но мне почему-то показалось это очевидным.

Я кстати никогда не утверждал что они уникальны. Да и вообще все современные
строготипизированные и мультипарадигменный языки очень похожи.
#451 #630095
>>630091
Вообще, говорить что кто-то у кого-то что-то там спиздил - не очень политкорректно, лучше писать как написано на вики - "испытал влияние".

>Да и вообще все современные


строготипизированные и мультипарадигменный языки очень похожи.
Я тебе больше скажу - почти все языки вышедшие в один промежуток времени очень похожи на свои однонишевые аналоги.
#452 #630170
Есть вакансия для антона из Харькова (strong-junior/middle). Оставляйте свои контакты ответом на пост
#453 #630195
>>630170
Удаленка подойдет? Сам из киева.
#454 #630236
#455 #630241
>>630236
Ну и хуй с вами.
#456 #630347
Помогите, запутался в версиях Support Library. Прочитал на so, что v7 либа включает в себя v4, то есть если используешь v7, то v4 не надо подключать. Однако там же прочитал, что если используешь v4, то надо ставить minSDKversion - 4, а если используешь v7 support library, то надо ставить minSDKversion - 7.
Но если v7 включает в себя v4, то по логике же я могу ставить minSDKversion - 4? Или нет? Запутался уже.
#457 #630411
>>630347
Ты хуйню какую-то прочитал, семерка действительно включает четверку, но минсдк выставлять не надо.
#458 #630414
>>630411
Точнее надо, конечно, но такой, какой нужен тебе. Смысл в том, что если ты пользуешь фичи конкретно семерки, то то и минсдк должен быть больше либо равен 7. Сейчас вообще вроде бы почти все ставят 15. Фэйсбук точно.
55 Кб, 483x311
#459 #630418
>>630347

>v4, v7


Ты ебанутый? Сейчас никто не ставит меньше 15, даже Android Studio (AS) при создание
нового проекта подставляет 15.

>v7 либа включает в себя v4


То что у v7 есть зависимость на v4 не значит что она может работать с API 4

>Но если v7 включает в себя v4, то по логике же я могу ставить minSDKversion - 4


Ну формально наверное можешь (если AS позволит), только тогда ты не должен
использовать никакой функционал из v7, а только v4
#460 #630443
>>630347

>minSDKversion - 4


Можешь ставить 16, на худой конец 14 и ничего не потеряешь.
#461 #630470
>>630414
>>630418
>>630443

Спасибо за ответы.

>Ты ебанутый? Сейчас никто не ставит меньше 15, даже Android Studio (AS) при создание


нового проекта подставляет 15.
Ну а если я пойду на работу и мне скажут пили проект с мин. апи7 или еще ниже. Я же не скажу им "вы че ебанутые? 15 поставлю и хватит", вот и разбираюсь в этих суппорт либах.
59 Кб, 818x464
#462 #630489
>>630470

>устройств с API 7 меньше 0.1%


>мне скажут пили проект с мин. апи7



Сейчас нет настолько ебанутых компании.
Говорю по своему опыту, под API 7 мы разрабатывали года 2 назад.
http://developer.android.com/intl/ru/about/dashboards/index.html
#463 #631136
Ребята, Java не знаю.
Из опыта только Си немного и всё.
Как правильно вкатится? Что читать по Java? Насколько глубоко в Java окунаться? Когда надо с изучения Java переключится на вникание в Android?
#464 #631141
>>631136
сук, спроси что-нибудь по делу, а не свою раковую хуету
и шапку прочти.
#465 #631142
>>631141
Ну из подходящего для меня лишь http://developer.alexanderklimov.ru/android/
, но подойдёт ли мне он с нулевым знанием Жабы и хватит ли той жабы что он даёт в своём кратком гайде по жабе?
#466 #631180
>>631142
>>631136
ОП в треде, заебала уже платина эта, сделаю вам новую шапку с пояснением для ленивых хуев блять.

Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush.
Можно эккеля "философия java" почитать.
Что тебе нужно понять в самой жабе.
Энтри лвл.
1) ООП - сам принцип нужно именно понять, так как ооп язык.
2) Типы данных. Примитивы и ссылочные.
3) Структуры данных - Массивы/коллекции - без них никуда.
4) Классы/интерфейсы и все вытекающие.
Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.

Дальше
5) Потоки ввода/вывода (streams). Не путать с тредами(threads).
6) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.
7) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.
Уже сделаешь что-то нормальное.

Дальше.
8) Работа с Sqlite, нужна будет в любом случае.
9) Почитать про json.
Привет клиент-серверка.

Потом может еще допишу.
#466 #631180
>>631142
>>631136
ОП в треде, заебала уже платина эта, сделаю вам новую шапку с пояснением для ленивых хуев блять.

Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush.
Можно эккеля "философия java" почитать.
Что тебе нужно понять в самой жабе.
Энтри лвл.
1) ООП - сам принцип нужно именно понять, так как ооп язык.
2) Типы данных. Примитивы и ссылочные.
3) Структуры данных - Массивы/коллекции - без них никуда.
4) Классы/интерфейсы и все вытекающие.
Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.

Дальше
5) Потоки ввода/вывода (streams). Не путать с тредами(threads).
6) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.
7) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.
Уже сделаешь что-то нормальное.

Дальше.
8) Работа с Sqlite, нужна будет в любом случае.
9) Почитать про json.
Привет клиент-серверка.

Потом может еще допишу.
#467 #631182
>>631142
Молодец, теперь иди отсюда учись.

Как появятся нормальные вопросы, возвращайся.
#468 #631193
>>631180

> Типы данных. Примитивы и ссылочные.


Сюда же алгоритмы добавь. Чтобы в общих чертах понимать принцип работы LinkedList, HashMap, понимать разницу между HashMap и LinkedHashMap, сортировку, очереди, ну и так далее.
#469 #631195
>>631180
10) (GOD TIER) Выучи язык Kotlin https://kotlinlang.org

Все его плюсы расписаны выше, а так же материалы для обучения.
#470 #631197
>>631195
А работу ты мне давать будешь по котлину?
#471 #631198
>>631195
Минус "он никому нахуй не нужен" полностью сводит на нет все его сомнительные плюсы. Не советуй больше этой хуиты, спасибо.
#472 #631203
Какой лучший выбор - android studio или идея с ручным дрочингом xml?
#473 #631205
>>631203
Eclipse
#474 #631209
>>631195
А вакансий на эту парашу столько же сколько на haskell? То есть одна и так по развитию языка?
#475 #631211
>>631197

>А работу ты мне давать будешь по котлину?


А ты знания только для работы получаешь? Само программирование тебя не интересует?
Боюсь что с таким подходом к делу, тебе не стоит становится программистом.
(хотя php возможно для тебя)

Кстати, к тому моменту, как ты закончишь школу универ,
все уже будут писать на Kotlin.

>>631203
У AS есть преимущества:
+ дополнительная статистика (gpu / network)
+ data binding
+ в версии 2.0 будет ускоренная заливка apk в телефон/эмулятор
(если тебе это нафиг не нужно, то стоит задуматься о IDEA)
#476 #631228
>>631211
Ну без еды мне эти знания нахуй не нужны будут, а кушать я хочу больше раза в неделю.
#477 #631231
>>631193
Коллекции же, ну да, допиливайте список, я его за 5 минут накидал не думая особо.

>>631195
И котлин добавлю ок, только не в маст хев а куда-то еще.
#478 #631233
>>631231
В раздел с ксамарином, js и скалой еще ReactNative туды.
#479 #631236
>>631203
Студия само собой. Вообще шапка для кого написана?
#480 #631237
>>631233
Скала? На ведре? Орли? Но гомо. С таким успехом можно еще плюсы подключать, не нужно людям говном голову засирать.

Да и хватит срать уже своим котлином, правда доебало. Язык норм, но блять третий день к ряду уже. Лучше бы на вопросы отвечал раз опытный такой.
#481 #631246
>>631228
Ну так иди гей-шлюхой фронтенд/php макакой работать.
Знаний почти не нужно, а на пожрать хватит.

>>631237

>Скала? На ведре? Орли? Но гомо.


Да норм, только говорят там runtime 6 мегабайт (а у Kotlin +400KB к APK)

>Лучше бы на вопросы отвечал раз опытный такой


>Как правильно вкатится?


Это вот на такую хуйню что-ли? Где адекваты?
Я вообще, полгода сюда не заходил, дай выговориться.
#482 #631321
Аноны, что думаете про эти курсы? https://www.coursera.org/specializations/androidapp

Будет стоит потраченных денег или тупо "как стать модным и молодежным погромистом за 21 день".
#483 #631338
>>631321
33 тыс/руб за это - серьезно?
Их сертификаты хоть где нибудь котируются?
#484 #631361
>>631246

>Я вообще, полгода сюда не заходил, дай выговориться.


Та почитай внимательнее, есть вопросы по разработке, некоторые довольно не очевидные.
#485 #631391
>>631237
Я не котлинофил. Ты кажется не тот класс детектора подгрузил. Check your ClassLoader.
#486 #631420
>>631338

> Их сертификаты хоть где нибудь котируются?


Хуй знает. Я понимаю что нет никаких волшебных курсов, но хочется найти такое где разъяснят все на примере какого-нибудь годного проекта.
#487 #631522
Привет, анон. Умения такой вопрос, в какой программе нужно писать игру на андроид и можно ли написать ее на языке С++?
4321 Кб, 300x134
#488 #631633
Ребята помогите плз, как лучше всего по кнопке покрасить статусбар?
53 Кб, 629x302
#489 #632052
>>631633
Берешь и без задней мысли красишь.
#490 #632053
>>631633
А есть выбор покраски статусбара чтоль?
#491 #632056
>>632053
Имею ввиду есть варианты разве кроме одного >>632052 ?
#492 #632057
>>631522
В Visual Studio 2015, так как-раз завезли кросс-платформенную поддержку C++
134 Кб, 352x178
120 Кб, 881x646
#493 #632135
>>632056
Мне пришел в голову несколько извращенный способ этого для API < 21 (тестировал на API 16).

Это чисто для фана, в реальных приложения конечно его не нужно использовать.
(тем более он прячет настоящий статус бар)
#494 #632146
>>632135
Вижу заняться тебе нечем.

as приведения типа? Почему так ущербно выглядит?
#495 #632158
>>632146
Потому что адекваты не пишут код, в котором нужно приведение типов.
А для редких случаем (работы со всякими убогими Java API) можно и потерпеть.

В принципе и в Android это уже начали понимать и в API 23 ввели дженерик
метод запроса системых серсисов:
http://developer.android.com/intl/ru/reference/android/content/Context.html#getSystemService(java.lang.Class%3CT%3E)
Глядишь в Android 7.0 и findViewById<T> добавят.

Плюс "as" созвучен с "is" (который здесь замена instanceof).
Кстати, в C# есть такой-же операнд "as" (C#-фагам легче будет перекатывать из Xamarin :)
#496 #632176
>>632158
Выглядит вс еравно как говно
#497 #632185
>>632176
аргументировано :)

Здесь то конечно неземная красота и кому после такого:
Cup<Coffee> cup = new Cup<>(new Coffee())

нужен Kotlin с его синтаксисом:
val cup = Cup(Coffee())
#498 #632305
>>632185
Инвалид, ты не понял? Твоё говно никому не нужно, авторитет твоего мнения ниже плинтуса. Съебал отсюда как вкатился, быстро, решительно.
#499 #632325
Сливаем тред
304 Кб, 449x337
#501 #632367
>>632305
А если не выкачусь, то что?
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 10 февраля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски