LINUX.ORG.RU
решено ФорумTalks

Хотет научиться лабать на жабе для андроида

 ,


3

4

Субж, самоучкой

Какие маны надо читать? Какие скилы уметь? ООП не умею, английский в пределах технического понимаю.

Эклипс с АДК установлен. Нашел книжки Голощапова и Вей-Менг Ли.

Предыдущую тему про «Хочу зарабатывать на программах для андроида, но не хочу программировать» ЖБ стер с пометкой «тупак», пришлось изменить жизненную позицию.

Я буквально за 3 дня разобрался с Qt и теперь лабзаю достаточно обширный хобби-gui-проектик.

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

winddos ★★★
()
Последнее исправление: winddos (всего исправлений: 2)
Ответ на: комментарий от winddos

Это типа совета для начинающего музыканта «тебе ничего не надо, кроме нот и учебника сольфеджио». Такой совет я и сам могу дать, причем в любой области.

abraziv_whiskey ★★★★★
() автор топика

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

Если что то не понимаешь, то лезешь в гугл «android sdk {bla bla}», «error {bla bla}», «class {bla bla} example», «android {bla bla} example».
Если яву раньше в глаза не видел, то на ходу разбирайся как что работает.

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

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Это мой практический опыт. Когда я садился читать умные книжки, то где то на этом месте всегда и кончался «новый крутой проект».
А вот если у тебя будет готовый прототип, который хоть как то работает, то ты уже будешь знать сложность, сможешь в конце концов написать ТЗ для стороннего кодера.

winddos ★★★
()
Ответ на: комментарий от winddos

Начнем с того, что я никогда не видел IDE. Продолжим тем, что в интернетах попадаются советы вида «импортируйте класс, которого не хватает», а гугление по «импортируйте класс» выдает охрененно странные результаты, которые не увязываются с известной мне информацей вообще никак.

abraziv_whiskey ★★★★★
() автор топика
Ответ на: комментарий от abraziv_whiskey

Т.е сейчас программирование под iOS/Android настолько простое, что любой школьник может написать софтину и её продавать.
Поэтому если ты на пару месяцев затормозишь в книжках, то такой школьник найдется и реализует твою идею, так всегда случается.

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Найди пример готового тестового приложения которое отдаленно может быть похоже на твоё, и посмотри его исходники.

Плюс на ютубе вбиваешь «eclipse android {bla bla}» и смотришь, ненужное пропускаешь. Видео-мануалки есть вообще на каждый чих.

winddos ★★★
()
Последнее исправление: winddos (всего исправлений: 1)
Ответ на: комментарий от winddos

Идей у меня много, пусть реализуют.

С чем я успел разобраться: по команде Run - Run запускается эмулятор смартфона, но по умолчанию он запускается в скрытом режиме. Это я раскопал и поправил, всего-то полчаса времени ушло.

abraziv_whiskey ★★★★★
() автор топика
Ответ на: комментарий от winddos

В книге Голощапова их сотни, но они для меня непонятны, ибо ООП. Я вообще программировал сначала в школе на бейсике, потом в институте на паскале (на турбо, в ДОСе), а потом только в баше.

abraziv_whiskey ★★★★★
() автор топика
Ответ на: комментарий от winddos

Подскажи запрос к гуглу, который сразу найдет мне ответ в такой ситуации. «Запускаю эмулятор и ничего не происходит»?

abraziv_whiskey ★★★★★
() автор топика
Ответ на: комментарий от abraziv_whiskey

«android emulator nothing happens»

У меня на девятом месте это:
http://blahti.wordpress.com/2012/06/22/android-emulator-will-not-run-in-eclipse/

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

winddos ★★★
()
Ответ на: комментарий от winddos

Нет, это у него запущенный эмулятор не запускает его программу, не откликается. У меня просто не открывалось окно эмулятора, хотя в строке состояния показывало, сколько памяти отожрано в нем.

abraziv_whiskey ★★★★★
() автор топика
Ответ на: комментарий от abraziv_whiskey

но они для меня непонятны, ибо ООП.

Ну тогда ты знаешь с чего начать.
Т.е без ООП там никак вообще.

Жалко, что Qt for iOS/Android не вышли ещё, т.к оно сильно проще чем ява с моей точки зрения.
Как раз решение для говнокодера на php как я.

Я вообще программировал сначала в школе на бейсике, потом в институте на паскале (на турбо, в ДОСе), а потом только в баше.

Вообще для разработчика GUI-приложения тебе совершенно не надо уметь кодить.
Т.к ты сначала делаешь GUI и придумываешь/дизайнишь окошки с точки зрения того как оно должно работать.
И только когда ты продумал всю внутреннюю логику ты пишешь код-обработчик.

winddos ★★★
()

В общем мой тебе единственный совет:
Сначало нарисуй GUI и придумай как все должно работать и только потом переходи к коду.
В перерывах между придумыванием можешь читать умные книжки и тестить разные примеры.

И посмотри обязательно на готовые фреймфорки «для тех кто не умеет и не хочет кодить», т.е тех где будет минимум ООП.
Я лично не очень шарю в андроидах, но думаю кто то другой сможет подсказать пачку.

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Для хардкора можно квадратиками вообще нарисовать в гимпе :)
Но вообще гугл на «android gui designer» выдает пачку тулз.

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Честно - не знаю, я всего лишь советую способ, на андроид я ничего лично не делал.
Точно знаю что есть куча фреймфорков и тулз типа App Intentor:
http://appinventor.mit.edu/

Одна из первых видюшек на ютубе по «ecliplse android gui»:
http://www.youtube.com/watch?v=iKL4xEsHQJU

winddos ★★★
()
Ответ на: комментарий от winddos

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

Вся эта байда не увязывается с моим опытом работы с компьютерами. Поясняю на примере: тебя спрашивают, как переводится слово «мэджик». Ты отвечаешь «магия, магический, что-то такое», а оно, оказывается, правильно произносится «мэджику», нужно было переводить с португальского, и означает оно «врач».

abraziv_whiskey ★★★★★
() автор топика
Последнее исправление: abraziv_whiskey (всего исправлений: 1)
Ответ на: комментарий от abraziv_whiskey

Хы! Вы таки будете смеяться, но recurso по-португальски произносится «рекурсу», а означает «ресурс».

abraziv_whiskey ★★★★★
() автор топика

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

1. Java 2 от Ноутона и Шилдта.

2. Андроид 4 (3, 2) для профессионалов.

Вторая книга содержит массу примеров и объяснений что к чему, но без знания явы многое будет просто непонятно. Более того тупые вопросы про импорт, приведение типов сразу и «создадим новый класс и перепишем такой то метод» отпадут.

gh0stwizard ★★★★★
()
Ответ на: комментарий от abraziv_whiskey

1. Ооп нужно, что бы там не говорили аналитики лора, Учи или не пиши на яве. 2. Хочешь писать под андроид - возьми китайскую трубу за 140$ и процесс разработки упростится и тестировать проще, да и вообще поработаешь со многими живыми примерами, эмулятор это для тех кто не уверен

blokant ★★
()
Ответ на: комментарий от abraziv_whiskey

Гради Буч и объектно-ориентированное проектирование и анализ. В Java 2 знание ООП дается на базовом уровне, что более чем достаточно чтобы написать простое приложение, не hello world.

gh0stwizard ★★★★★
()
Ответ на: комментарий от winddos

Я буквально за 3 дня разобрался с Qt и теперь лабзаю достаточно обширный хобби-gui-проектик.

Qt на андройде?

Siado ★★★★★
()
Ответ на: комментарий от winddos

забей на проверку данных, красивость и каменты.

Теперь мне понятно, из-за чего андроид словно говно в вентиляторе, на каждом форуме хають за обилие троянцев, программ, програмочек и програмулечек вещающих всю систему, а ответ так банален — обилие погромистов «забей на проверку данных, красивость и каменты».

makeB
()
Ответ на: комментарий от makeB

а ответ так банален — обилие погромистов «забей на проверку данных, красивость и каменты».

Это кстати прямое доказательство того, что «правильные» кодеры свои идеи до реализации доводят раз в сто лет.

А за за пару месяцев все равно нельзя научится хорошо кодить, на это все равно надо больше времени.
А вот идея будет просрана и возможно её уже реализует кто то другой.

winddos ★★★
()
Ответ на: комментарий от winddos

А вот идея будет просрана и возможно её уже реализует кто то другой.

Такая идея, с реализацией «забей на проверку данных, красивость» некому не нужна, и так уже при виде андроид-маркета, хочется закрыть лицо руками и плакать, плакать, пуская сопли.

makeB
()

Зависит от области, в которой хочешь лабать. Если игры, бери готовый двиг, делать это на на нативной джаве сущее самоубийство. Если хочешь утилитки для себя - годных книг куча, но в принципе, все они об одном и том же - перевод developer.android.com. Лично я советую учится по манам замечательного ресурса startandroid.ru.

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

MyNameIsWinner
()
Ответ на: комментарий от makeB

Такая идея, с реализацией «забей на проверку данных, красивость» некому не нужна

Без работающего прототипа пилить красивый код это идиотизм.

некому не нужна

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

и так уже при виде андроид-маркета, хочется закрыть лицо руками и плакать, плакать, пуская сопли.

Ты реально думаешь, что качество кода iOS приложений сильно выше?

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Все правильно тебе говорят - поставь простую задачу и начинай ее выполнять. На developer.android.com стартовых документов для «самых маленьких» более чем достаточно - прочитай хотябы пару вводных статей по system basics - там все разжевано нормально человеческими словами без глубин ООП.

Главный совет - посмотри, какие базовые кубики в системе доступны (экраны-активити Activity, элементы управления View, сервисы, интенты, контент-провайдеры и т.п) и думай о том, как из них сделать такую комбинацию, которая покроет требования твоего приложения, т.е. не хоти странного и используй все стандартное, тогда избежишь кучи лишних проблем. Пример гуя создается сразу в тестовом проекте с hello world - если бы открыл хотябы стартовую страницу на developer.android.com, то таких вопросов у тебя бы не было. Два твоих любимых файла на ближайшее время, которые должны сгенерироваться в тестовом проекте - это MainActivity.java в классах и main.xml в layout. В xml-файле добавляешь стандартные элементы управления типа кнопок и полей ввода (рекомендую познать логику LinearLayout и править xml-файл руками, в крайнем случае использовать встроенный в эклипс редактор, но без понимания лэйаутов к нему все равно не подходи - будет только хуже. Тем более не влезай в левые инструменты, которые без понимания зачем они нужны и почему не работают только добавят гемора), в ява-файле будет вся логика типа обработчика нажатий на кнопки (первое время тебе опять же с головой хватит одного этого файла, т.е. глубины ООП-проектирования познавать не придется).

bender ★★★★★
()
Последнее исправление: bender (всего исправлений: 1)
Ответ на: комментарий от MyNameIsWinner

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

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

winddos ★★★
()
Ответ на: комментарий от bender

Ты расписал куда менее сумбурно чем я, во всем согласен. +

winddos ★★★
()
Последнее исправление: winddos (всего исправлений: 1)
Ответ на: комментарий от winddos

Ты реально думаешь, что качество кода iOS приложений сильно выше?

В среднем — да. Ну и все кроссплатформенные приложения традиционно первыми выходили под iOS и работали на нем лучше.

Очень разный подход к написанию под эти две платформы.

note173 ★★★★★
()
Ответ на: комментарий от note173

В среднем — да. Ну и все кроссплатформенные приложения традиционно первыми выходили под iOS и работали на нем лучше.

Фрагментацию никто не отменял.

Очень разный подход к написанию под эти две платформы.

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

Я во многом с тобой согласен, именно поэтому и советую сразу готовить прототипы, т.к конкуренция на рынке более дикая и высокая.
Если ты выпускаешь софт среднего качества у которого нет аналогов, то тебе гарантированы пользователи.

А вот отбивать нишу у пары бесплатных кривых програм намного сложнее.
И придется опускаться до их уровня по цене :)

winddos ★★★
()
Ответ на: комментарий от abraziv_whiskey

Qt на андроиде уже вполне себе есть, 2гис на нем сделан.

Это же не стабильный релиз скорее всего.
А значит разбираться новичку будет сложнее.

Но вообще если он тебе подходит, то обязательно посмотри в его сторону.
Для меня лично он в разы проще явы, т.к для простой программы не нужно ничего кроме обработчиков действий пользователя.
Плюс в Qt нет необходимости генерить тонны строк технического кода, т.к дефолтных виджетов будет достаточно для 99% задач.

winddos ★★★
()
Ответ на: комментарий от winddos

Без работающего прототипа пилить красивый код это идиотизм.

Такой прототип как ты посоветовал — сразу в корзину, либо с нуля переписывать, а разработчика в биореактор + выжечь территорию напалмом, дабы избежать возможности получения днк.

makeB
()
Ответ на: комментарий от abraziv_whiskey

Да, и как вы кодите на 12" экранах? У меня в 24 жуткая каша и все мелкое.

Попробуй писать так, чтобы каждый метод выполнял только _одну_ _простую_ задачу. Хорошей практикой считается, если кол-во строк в методе помещается на один экран (в высоту, ес-но). Я сейчас пишу вообще за 10", т.ч. приходится писать _очень_ красивый код. ☺

Возможно тебе упростит задачу TODO для каждого класса: пишешь класс и между фигурными скобками


//TODO метод 1
//TODO метод 2

а когда переходишь к реализации конкретного метода, то под // TODO пишешь, что именно метод должен уметь и как это реализовать. Помогает расставить все по полочкам — в свое время я так и делал, когда во время написания одного метода в голову приходило куча других, и пока я пытался их реализовать не получалось вообще ничего.

f1xmAn ★★★★★
()
Ответ на: комментарий от makeB

Такой прототип как ты посоветовал — сразу в корзину, либо с нуля переписывать, а разработчика в биореактор + выжечь территорию напалмом, дабы избежать возможности получения днк.

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

А лучше расскажи ТСу сколько ему реально надо времени чтобы научится и написать этот правильный код.

winddos ★★★
()
Ответ на: комментарий от winddos

Пока ты рассуждаешь о правильном коде другие делают бабло.

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

makeB
()

Кстати, я и есть тот самый «Девелопер, девелопер», про которого Балмер танцевал лет несколько назад, только под андроид.

abraziv_whiskey ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.