OneClickStudio

OneClickStudio

Пикабушник
Дата рождения: 06 августа 1990
leonid65
leonid65 оставил первый донат
поставил 91 плюс и 67 минусов
отредактировал 0 постов
проголосовал за 0 редактирований

Разработчику на орешки

Обычно принято принимать благодарность в виде чашки кофе, но это не про нас.

50 9 950
из 10 000 собрано осталось собрать
Награды:
С Днем рождения, Пикабу!5 лет на Пикабу
2208 рейтинг 241 подписчик 38 подписок 47 постов 9 в горячем

Программирование на Android

Серия познавательных (и полезных) материалов о тонкостях настройки, компиляции и дизайна приложений на Android.

Программирование на Android Android, Программирование, Текст

В освещении несколько тем:


Дизайн -

http://pikabu.ru/story/material_design__pora_obnovlyatsya_4156400

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_2_4172654

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_3_4178810

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_4_4198359

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_5_4215136


Программирование -

http://pikabu.ru/story/programmiruem_mobilnyiy_spravochnik_chast_1_maketyi_4032797

http://pikabu.ru/story/programmiruem_prilozhenie_pikabu_dlya_android_chast_5_dizayn_4014466

http://pikabu.ru/story/programmiruem_prilozhenie_pikabu_dlya_android_chast_4_4001359

http://pikabu.ru/story/kak_smotret_pikabu_v_telefone_bez_reklamyi_chast_3_3988916

http://pikabu.ru/story/kak_smotret_pikabu_v_telefone_bez_reklamyi_chast_2_3969264

http://pikabu.ru/story/zadolbalo_ili_kak_smotret_pikabu_v_telefone_bez_reklamyi_3942031


Тестирование -

http://pikabu.ru/story/liga_pomoshchi_nuzhnyi_testeryi__pechenka_4181566

Показать полностью

Программирование на Android.

Серия познавательных (и полезных) материалов о тонкостях настройки, компиляции и дизайна приложений на Android.

Программирование на Android. Программирование, Android

В освещении несколько тем:


Дизайн -

http://pikabu.ru/story/material_design__pora_obnovlyatsya_4156400

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_2_4172654

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_3_4178810

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_4_4198359

http://pikabu.ru/story/material_design__pora_obnovlyatsya_chast_5_4215136


Программирование -

http://pikabu.ru/story/programmiruem_mobilnyiy_spravochnik_chast_1_maketyi_4032797

http://pikabu.ru/story/programmiruem_prilozhenie_pikabu_dlya_android_chast_5_dizayn_4014466

http://pikabu.ru/story/programmiruem_prilozhenie_pikabu_dlya_android_chast_4_4001359

http://pikabu.ru/story/kak_smotret_pikabu_v_telefone_bez_reklamyi_chast_3_3988916

http://pikabu.ru/story/kak_smotret_pikabu_v_telefone_bez_reklamyi_chast_2_3969264

http://pikabu.ru/story/zadolbalo_ili_kak_smotret_pikabu_v_telefone_bez_reklamyi_3942031


Тестирование -

http://pikabu.ru/story/liga_pomoshchi_nuzhnyi_testeryi__pechenka_4181566

Показать полностью

Material Design - Пора обновляться (Часть 5)

Привет, человеки!


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


По правде сказать, немного удивлен такой заинтересованностью некоторых участников (подписчиков) моего нано-блога. Надеюсь, я вас не разочарую! =)


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


Сегодня поговорим об обновленном компоненте Tabs (Вкладки), и как обещал, вкратце расскажу про способы продвижения приложений в Российском сегменте. Полетели!

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

Программировать мы будем на примере еще не опубликованного приложения, которое решает простую задачу - является справочником. Углубляться в значимость этой затеи не будем (я имею право на собственных тараканов в голове!).


Для затравки покажу пример того, что мы получим в итоге:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

А теперь немного теории.


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


За примером далеко ходить не надо - самое посещаемое Android приложение на планете осуществляет доступ к каталогу посредством вкладок:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

Обновленные же вкладки вместе с выпуском версии 5.0 претерпели некоторые изменения.


1) Вкладки могут меняться свайпом (вправо-влево). Это логично, интуитивно понятно и чертовски удобно (особенно если вы обладатель лопатофона).


2) Вкладки могут наследоваться от Coordinator. Что это дает? Огромный функционал, который доступен в базовой комплектации - скроллинг, скрытие тулбара, строки поиска, новомодных Floating Action Button и прочих ништяков. Если хотите узнать немного больше о элементе Coordinator, рассказано об этом тут.


3) Масштабируемость. При верстке для планшетов вкладки подгоняются под требуемый размер экрана, либо следуют заданным параметрам (fixed, scrollable). В качестве примере изображение из гуглдоков:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

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


Теперь за дело. Открываем студию, создаем новую активность. Я использую Basic Activity

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

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


Как это работает?


- Activity_Main (Наша главная активность. В ней инициализируются вкладки, даются названия для них. Вся магия проворачивается через viewPager, он же обращается к классам Tab_1, Tab_2)

-- Layout_Main (XML Слой главной активности. В нем имеется Coordinator, Toolbar, TabLayout, и ViewPager. Больше там ничего не нужно)

--- Tab_1/2 (Класс для вкладки. Класс вызывает фрагмент, который является слоем, где уже расставлены необходимые элементы - кнопки/списки/картинки)

---- Fragment_1/2 (XML слой, где для каждой вкладки отдельно рисуется интерфейс. Например, на первой кнопки, на второй список.)


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


Выглядит в студии процесс нарисованных фрагментов и активности примерно так:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

Теперь код. Для фрагментов все однотипно, там царит пустота:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

И активность:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

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

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

Все скроллится пальчиками, если будем тянуть вверх-вниз, Toolbar будет прятаться. Но перед этим во фрагменте нужно корневым элементом выставить ScrollView / NestedScrollView!

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

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


- http://www.materialdoc.com/tabs/ (Есть пример как вместо текста установить значки, но по гайдлайнам советуют не перебарщивать)


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


1 место с конца - GoogleМатьЕгоPlay - Если вы выпускаете приложение, и хотите засветить его для всего человечества - добро пожаловать. Взнос 25 зеленых, и корпорация добра дает вам аккаунт разработчика.


Как продвигается? С вашим аккаунтом gmail.com вам доступны инструменты AdMob, AdWords, AdWords Express и прочие. Вы можете легко положить 1000 рублей на счет, две недели промучать поддержку в выборе правильной стратегии, цен, конверсий (которая не нужна для бесплатногго приложения), и забыть про них. Потому что с маленьким бюджетом там делать нечего. Из потраченных денег я приобрел более 800 кликов, из которых установило приложение 0.02%.


2 место с конца - Yandex.Store - симбиоз поисковика, и попытки установить Амиго. Честно, мне каждый раз рекомендуют установить инструмент для отслеживания посещений.

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост

Из преимуществ - бесплатно. Я попробовал использовать его, только потому, что меня привлекла красивая обложка, и громкие словосочетания. Загрузил три приложения, добавил описание, скриншоты, все по старинке импортируется из Google Play. В итоге - пока 1 загрузка (против 40.000 в гугле). Как магазин - не знаю, время покажет.


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


Золотая середина - Профильные форумы/трекеры. Специализированные форумы, а также ветки в трекере - всегда интересное место. Можно получить хороший фидбек, а также немного увеличить количество загрузок.


Что в плюсе? Бесплатно, зарегистрируйся, и создавай пост. Если приложение регулярно обновляется, тема принесет 100-300 загрузок за обновление. По примерным подсчетам, около того у меня и выходит.


Как продвигается? Можно, например, поучаствовать в программе поддержки разработчиков на 4pda (не реклама прости господи). Идея уместна, если вы уже доделали свой проект, уверены в силах, и у вас есть лишние 8 тысяч - именно такая цена за самый дешевый тариф. Сам не пробовал, но грамотно оформленный пост всегда привлечет внимание.


Приносит от 3000 установок от степени заинтересованности. Если вы сделали что то грандиозное - не сомневайтесь, в сторе приложение подпрыгнет. Либо же смотрите в сторону контекстной рекламы на выбранном ресурсе.


Идеальный вариант - Вы можете предложить в комментариях. Я прекрасно понимаю, что есть миллион способов рекламировать приложение, о чем я не рассказал (VK, мотивированный траффик, промо страницы, продвижение по запросам и прочее), и многое из перечисленного  уже перепробовано, но не прельщает.


Спасибо, что дочитали до конца! В следующий раз мы поговорим об умном поиске в Toolbare, который реагирует по вводу первых символов, а также я порадую ребят, которые помогли мне в этом посте.


P.S. мои дорогие подписчики! Если я начал выкладывать котиков, значит школота интеллигенция портала жестом однокнопочного рукоблуда руки поставила минусы, и я восполняю баланс в мире =)


P.S.S. напоследок мой котопес, который всегда ткнет мордой в плохой код:

Material Design - Пора обновляться (Часть 5) Android, Программирование, Кот, Гифка, Длиннопост
Показать полностью 12

Material Design - Пора обновляться (Часть 4)

Привет, земляне!


После удачно пережитой Пятницы 13-го, мы снова садимся за компьютер, и продолжаем обновлять приложения.


Напомню, в прошлый раз мы силой мысли рисовали экран каталога, и познакомились с базовой анимацией.


Сегодня будем интегрировать в программу библиотеку для просмотра web страниц, и я поверхностно расскажу о монетизации своих приложений. Полетели!

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

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

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

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


Первым делом удаляем старую активность для просмотра веб страниц, и создаем новую, так сказать, "с чистого листа":

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Мы используем Basic Activity с функцией наследования. Это означает, что когда мы зайдем в эту активность, в Toolbar'е будет по умолчанию располагаться стрелка для выхода на предыдущий экран (смотри схематическую картинку ниже).

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Итак, активность создана, она полностью пустая. Лезем на гитхаб, подбираем библиотеку для просмотра страниц.


Я выбрал самую навороченную, с поддержкой старых версий Android:

FinestWebView-Android


Кроме нереального огромного readme она имеет солидный список для кастомизации и стилизации, поэтому, кто пользуется средствами просмотра web контента - must have!


Выглядит примерно так:

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Можно углядеть, что эта сборка предлагает собственные настройки (т.е. темы), а также дополнительный функционал, в виде кнопок навигации вверху. Значит нам меньше работы.


Интегрируем библиотеку в свой проект, записываем зависимости в Gradle:

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Далее - настройка. Пробежавшись глазами по списку методов, были выбраны основные на сохранение данных (пароль/логин), кеширование основных ресурсов, поддержка JavaScript, и поддержку ZoomControl

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Для цветового соответствия был написан коротенький стиль, который соответствует общей палитре в приложении.


На реальном устройстве выглядит так (теперь приложение стало полноэкранным):

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

Что было сделано кроме веб браузера:


- Поправил размер иконки (для прошивок MIUI)

- Исправлены стили для Android 5.0-6.x

- Переделал режим советы

- Стартовый экран для новеньких со списком изменений

Material Design - Пора обновляться (Часть 4) Android, Программирование, Кот, Длиннопост

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


Монетизация


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


В наших случаях (у нас не игра, а приложение) показывается межстраничные объявления. Как это действует?


- Загружается экран приложения. На нем ничего не происходит. Вы тыкаете на любую кнопку.

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

--- После закрытия объявление вы продолжаете пользоваться приложением.


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


Типы рекламы


Всего типов рекламы (основных) четыре:

- Баннер

- Полноэкранный баннер

- Нативная реклама

- Видеореклама с возможностью пропустить ролик / без возможности пропустить ролик


За просмотр каждого объявления идет начисление средств. Например, за просмотр 1000 объявлений типа баннер оплата 0.01$.


За клик соответственно больше. Но это также зависит от триллиона показателей и от положения марса в созвездии венеры


Выбор агрегатора


Я использую медиатор от Appodeal, он совмещает в себе все популярные сетки (от AdMob до Yandex и InMobi), и позволяет выводить средства без ожидания 90 и 60 дней. Также он очень удобный, и обычно затраты на отображение рекламы - 5-6 строк кода.


Если интересно - задавайте вопросы, или присоединяйтесь!

http://appodeal.com/+oneclick


Спасибо, что дочитали до конца! В следующий раз мы немного поговорим о продвижении приложения, кроме магазина Google Play.


Посмотреть, каким стал клиент для Pikabu можно из маркета, или тем кому не терпит подождать:


4PDA - http://4pda.ru/forum/index.php?showtopic=720038&st=20#entry49607936

Google Play - https://play.google.com/store/apps/details?id=xyz.oneclickstudio.pikabu


P.S. мои дорогие подписчики! Если я начал выкладывать котиков, значит школота интеллигенция портала жестом однокнопочного рукоблуда руки поставила минусы, и я восполняю баланс в мире =)

Показать полностью 9

Лига Помощи! Нужны тестеры! (+ Печенька)

Привет, пикубуняне!


Надеюсь я никого не задолбал своим программированием (те, кто любит котиков надеюсь меня простят).


Сегодня на суд выносится очередное приложение на платформе Android, предназначенное для просмотра онлайн / скачивания популярных сериалов.


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


Итак. После долгой и кропотливой работы, одной съеденной собаки и блока выкуренных сигарет программа готова к первому общему тесту.

Лига Помощи! Нужны тестеры! (+ Печенька) Android, Программирование, Лига Добра, Длиннопост

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


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

Лига Помощи! Нужны тестеры! (+ Печенька) Android, Программирование, Лига Добра, Длиннопост

Что нужно?


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


- После того, как вы успешно найдете два/три косяка, при выходе из программы вы увидите такое окошко:

Лига Помощи! Нужны тестеры! (+ Печенька) Android, Программирование, Лига Добра, Длиннопост

После нажатия на ОК, откроется штатный браузер, и загрузится гуглформа, которую я подготовил. Вопросы самые простые, я думаю справится каждый.

Лига Помощи! Нужны тестеры! (+ Печенька) Android, Программирование, Лига Добра, Длиннопост

Что взамен?


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


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


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


P.S. Для пользователей планшетов! При установке приложения на свое устройство, вы будете лицезреть растянутый интерфейс, так как визуального стиля для Вас не подготовлено. Простите!


Ссылка для скачивания приложения (ЯДиск):

https://yadi.sk/d/KGL_Z4F1rXNa5 (APK)

https://yadi.sk/d/-JgcRIYwrXNcx(ZIP)

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

https://docs.google.com/forms/d/1U5FyxZKnH-CR76fVImjnJOZAw5s6sHwaDXTd2HIYJjc/viewform#responses


Всем бобра, спасибо за внимание =)

Показать полностью 4

Material Design - Пора обновляться (Часть 3)

Привет, пикабуняне!


Сегодня опять выдался выходной, а значит пора дальше обновлять приложения.


В предыдущем посте мы нарисовали стартовый экран для приложения, используя CardView и развитую мышцу мозга. Сегодня будем продвигаться еще глубже, и обновим экран каталога - самое масштабное место в практически любом приложении.


Использовать будем наработки по CardView, познакомимся с элементом Coordinator, и бонусом я немножко напишу про использование базовой анимации в приложении.

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

Первым делом создаем активность в студии. Использовать будем Scrolling Activity:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

Перед тем, как продолжить, немного теории.


Coordinator Layout - слой, который как ясно из названия, координирует действия дочерних элементов, которые он содержит (обеспечивает анимацию при прокрутке, появление и изчезание отдельных слоев, меню и вкладок). Он был анонсирован вместе с Android 5.0, и с той поры пользуется популярностью.


Реализаций для этого компонента масса, главное фантазия.


В Гуглдоках можно найти следущий пример работы, его мы и будем повторять:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


Мы сделаем его еще больше, потому что будем загружать туда изображение. Для этого меняем значение:


android:layout_height="app_bar_height"

на

android:layout_height="280dp"

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


Лезем на уже известный сайт http://www.freepik.com, вводим поисковые запросы:

- Appliances (Бытовая техника)

- Material Design


В итоге имеем два изображения:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост
Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

Используя графический редактор, редактируем два этих изображения, чтобы в приложении название "Каталог" и стрелка назад помещались в разноцветных блоках, и были читабельны:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

Теперь засовываем это в студию, смотрим на эмуляторе:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


Берем куски кода CardView из предыдущего занятия экрана, загружаем нужные иконки на https://design.google.com/icons/, и получаем следующее:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


Создаем новый слой (совсем отдельный), рисуем в нем список:

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


После того, как мы все это нарисовали, нам надо затолкать этот список в карточку, через дополнительный атрибут <include/> 


Этот атрибут позволяет вставлять в слой дополнительные слои, который, в свою очередь, находятся внутри слоя. Сложно? Обрисую как это выглядит:


- LinearLayout (корневой слой)

-- android.support.v7.widget.CardView (карточка)

--- RelativeLayout (корневой слой внутри карточки)

---- include (вставляем отдельный слой, внутри него своя разметка)

--- /RelativeLayout (закрываем слой внутри карточки)

-- / (закрываем все остальное)

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


Для этого задаем ему атрибут android:visibility="gone", что означает, что этого слоя не будет видно, пока мы не вызовем его программно. Теперь он будет скрыт, и будет ждать команды на отображение.


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

За нее отвечает две строчки кода:


Animation anim = AnimationUtils.makeInAnimation(this, true);

tv1.startAnimation(anim);


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

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

Методов опять таки очень много, я приведу лишь некоторые:


Ударение о поверхность:

anim.setInterpolator(new BounceInterpolator());

Ускорение:

anim.setInterpolator(new AccelerateInterpolator());

Замедление:

anim.setInterpolator(new DecelerateInterpolator());

Ускорение с замедлением:

anim.setInterpolator(new AccelerateDecelerateInterpolator());


Также можно комбинировать почти все анимации.


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

Material Design - Пора обновляться (Часть 3) Android, Программирование, Дизайн, Гифка, Длиннопост

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


P.S. мои дорогие подписчики! Если я начал выкладывать котиков, значит школота интеллигенция портала жестом однокнопочного рукоблуда руки поставила минусы, и я восполняю баланс в мире =)

Показать полностью 13

Material Design - Пора обновляться (Часть 2)

Привет, жители Пикабу!


Продолжаем рассказ о программировании, а именно о обновлении дизайна в мобильных программках.


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


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


Для начала скриншот того, что было:

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

Представленное приложение - неофициальный клиент одноименного сайта (раз своего нет), ну и фиг с ним.


Рисуем новый экран загрузки. Так как Material Design позиционируется как скорее плоский стиль, взамен старых объемов (привет, iOS), мы максимально упростим все что есть.


Берем новый логотип из общеизвестных поисковиков, максимально обрезаем его:

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

Теперь нам надо залить этим же цветом всю оставшуюся часть экрана, а также статус бар (эффект заметен начиная от версии android 5.x.x и круче) Для взятия пробы цвета подойдет любой графический редактор. На выходе имеем следующее:

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

Далее мы будем переделывать главный экран. Но перед этим лирическое отступление.


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


На самом первом скриншоте видно, что экран представляет собой список в одной категории. Если поменять категорию, соответственно меняется список.


Сносим все это дело (попутно сохранив нужные кусочки кода), пересоздаем активность (теперь в ней еще будет Navigation Drawer), и рисуем новый экран. Использовать будем CardView, и разместим почти всю навигацию внутри этих карточек.

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

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


Лезем на ресурс из прошлого занятия поста: http://www.freepik.com


Мы подобрали картинки по следующим запросам - Support, Sale, Cart

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

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


Слой будет содержать следующие элементы:


- RelativeLayout (корневой слой)

-- ScrollView (vertical, для скроллинга вверх/вниз)

--- LinearLayout (vertical для отображения всех элементов друг после друга)

---- android.support.v7.widget.CardView (наша карточка)

-----RelativeLayout (корневой слой внутри катрочки)

------ImageView (картинка)

------TextView (текст)

-----/RelativeLayout (закрываем корневой слой в карточке)

/ (закрываем все остальные элементы)


Получилось следующее:

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

Итак, один элемент готов. Это своеобразное напоминание. В дальнейшем этот элемент будет доработан, и для него будет написан код.


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

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

А на реальном устройстве выглядит следующим образом:

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

В боковое меню (Navigation Drawer) мы тоже добавим свои иконки, я беру их из общего источника Гугл Инкорпорейтед: https://design.google.com/icons/


На момент написания поста иконки были не у всех элементов, но принцип один и тот же:

- Скачиваем иконку (архив с готовыми разрешениями)

- Добавляем необходимые размеры в наше приложение (для меню подходит 24dp, для интерфейса лучше взять 48dp

- Задаем эти иконки в коде (или в слое, кому как удобнее)

- Радуемся жизни =)

Material Design - Пора обновляться (Часть 2) Android, Программирование, Длиннопост

Спасибо, что дочитали до конца! В следующий раз мы будем работать над самим каталогом, посмотрим на элемент Coordinator, и глянем, какие крутые штуки он умеет.


P.S. мои дорогие подписчики! Если я начал выкладывать котиков, значит школота интеллигенция портала жестом однокнопочного рукоблуда руки поставила минусы, и я восполняю баланс в мире =)

Показать полностью 9

Наступил Март. Пора выпрашивать принца..

Наступил Март. Пора выпрашивать принца.. Кот, Март, Гифка

Качество - https://www.youtube.com/watch?v=oo3Pgj2FZqc&feature=youtu.be

Отличная работа, все прочитано!