Бюдгаджеты недели: доступная электроника, которая нас удивила

Бюдгаджеты недели: доступная электроника, которая нас удивилаСегодня у нас бюджетный смартфон Oukitel U7 Plus, «олимпийский» ZUK Z2 Rio Edition, а также выгодные акции и предложения китайских интернет-магазинов.

Смартфон Oukitel K10000 с аккумулятором емкостью в 6 раз больше, чем у iPhone 6s подешевел до $135

Онлайн-магазин Gearbest запустил распродажу телефона OUKITEL K10000, о котором ранее писал MacDigger. По заявлению производителя, устройство с акционной ценой в $135 обладает самой емкой среди всех смартфонов батареей в 10 000 мА·ч. Заряда батареи Oukitel...

[Dev Story] История создания приложения FoodDiary

FoodDiary

Нам пишет Ринат Абидуллин

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

Идея

В один прекрасный день я задумался: “Как много я съедаю за день?”. Просто у меня недобор веса, и мне крайне сложно его поднять. Вычислил необходимое количество калорий для набора массы, вышло 3500 ккал в день. Далее необходимо было каждый день рассчитывать калории и БЖУ съеденной пищи. Сначала я стал искать готовые решения для ведения дневника питания на телефоне. Установил и испытал порядка десяти приложений, но не одно из них мне не подошло по ряду требований, которых-то совсем немного:

  • Настраиваемые напоминания о необходимости внесения съеденной пищи в дневник
  • Хорошая база продуктов
  • Возможность добавлять свои продукты
  • Произвольное количество времен приема пищи, а не только завтрак, обед и ужин
  • Просмотр КБЖУ за день, за конкретное время приема пищи, а также возможность посмотреть на вклад одного продукта в КБЖУ

Было решено написать собственное решение, удовлетворяющее вышеперечисленным требованиям.

Описание приложения

Итак, что из себя представляет приложение? Это дневник питания, который высчитывает КБЖУ (калории, белки, жиры и углеводы), употребленные вами с приемами пищи. Давайте на примере рассмотрим, как происходит взаимодействие пользователя с приложением.

Первое, что необходимо сделать, — это добавить время приема пищи. Например, вы позавтракали в 7:10 утра. Для этого нажимаем на “+” и устанавливаем желаемое время:

001

Далее выбираем съеденные продукты нажатием на кнопку “Добавить съеденный продукт”. Их можно найти, перемещаясь по категориям или, что, несомненно, удобнее, воспользовавшись поиском. Как только вы нашли искомый продукт, нажмите на него и введите количество съеденной порции:

002

Если вы не нашли нужный продукт, его можно добавить самостоятельно, перейдя в категорию “Ваши продукты”:

003

Обратите внимание, что практически для всех продуктов вам предлагается указать размер съеденной порции в граммах. Это не всегда бывает удобно. Представьте, вы утром съели банан, заносите его в дневник и указываете размер порции, например, в 150 грамм, хотя удобнее было бы указать размер порции в штуках. Выход есть — нужно добавить свой продукт в базу приложения под таким же именем и указать меру измерения порции в штуках:

004

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

Ввели все съеденные продукты? Теперь вы можете посмотреть, сколько калорий и БЖУ вы употребили в определенное время, а на верхней панели — в течение дня. Чтобы посмотреть на вклад определенного продукта в КБЖУ, выполните по нему жест “свайп вправо”:

005

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

006

Дизайн

Я не дизайнер, поэтому и дизайна приложения, скорее всего, нет. Просто подбираю цвета, иконки, шрифты и т. д. до тех пор, пока не проходит резь в глазах. Как только она прошла — всё, дизайн готов. Интерфейс программы тоже никак не разрабатывался, я просто старался сделать так, чтобы приложением было удобно пользоваться (здесь сыграла моя любовь к минимализму и простоте).

Разработка

Приложение несложное, на его разработку ушел месяц (пару часов после работы в будние дни и часов по 8 в выходные). Это не первое мое приложение, опыт уже есть. Разработка шла на языке Objective-C, хотя я уже начал осваивать Swift, но пока все же привычнее писать на старичке.

Создавая новый проект в Xcode, я сразу же добавляю скрипт, который автоматически увеличивает номер сборки при каждом компилировании приложения (Build Phases -> Run Script):

#!/bin/bash
bN=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
bN=$(expr $bN + 1)
bN=$(printf "%d" $bN)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $bN" "$INFOPLIST_FILE"

В разработке я использую CocoaPods для работы с чужими библиотеками, хотя первое время (когда только делал первые шаги в разработке под iOS) просто копировал файлы библиотек в проект Xcode. Пользоваться CocoaPods легко: https://guides.cocoapods.org.

Хочу поделиться с вами библиотеками, которые часто использую в своих проектах:

https://github.com/ccgus/fmdb
Обертка для работы с базой данных SQLite

https://github.com/ViccAlexander/Chameleon
Легкая и вместе с тем мощная библиотека для работы с цветом для iOS (Objective-C & Swift).

https://github.com/SnapKit/Masonry
Обертка для AutoLayout с приятным и лаконичным синтаксисом.

https://github.com/AFNetworking/AFNetworking
Идеальная библиотека для работы с сетевыми запросами для iOS, OS X, watchOS и tvOS.

https://github.com/PrideChung/FontAwesomeKit
Библиотека с иконочными шрифтами для iOS. Поддерживает Font-Awesome, Foundation icons, Zocial и ionicons.

https://github.com/Friend-LGA/LGAlertView
Гибко настраиваемая реализация UIAlertViewController, UIAlertView и UIActionSheet.

https://github.com/UrbanApps/UAObfuscatedString
Категория для NSString, позволяющая скрыть строки в скомпилированном бинарном файле приложения.

https://github.com/MortimerGoro/MGSwipeTableCell
Подкласс UITableViewCell создания ячеек таблицы со свайп-кнопками.

https://github.com/SVProgressHUD/SVProgressHUD
Индикатор загрузки для iOS и tvOS.

https://github.com/robotmedia/RMStore
Библиотека для работы со встроенными покупками (In-App Purchases)

Практически все вышеперечисленные библиотеки были использованы при разработке данного приложения.

Для отслеживания падений приложения я встроил Crashlytics (сервис бесплатный). Также этот сервис позволяет организовать beta-тестирование приложения. Реализовано все крайне удобно.

007

Для сбора статистики решил попробовать решение от Яндекса: AppMetrika. AppMetrica — это бесплатный инструмент, который в реальном времени собирает информацию об источниках аудитории, анализирует её поведение в приложении и фиксирует ошибки, с которыми сталкиваются ваши пользователи.

008

Немного про мой опыт разработки: начал изучение языка Objective-C примерно в 2013 году – читал книги, статьи, смотрел видеоуроки, компилировал примеры и старался выполнять задания из книг. В августе 2014 года решил, что пора бы начать создавать собственное приложение. Первое приложение писал 8 месяцев – это была программа для запоминания английских слов. Второе приложение — музыкальный плеер с голосовым управлением. Из хороших видеоуроков могу посоветовать эти: http://vk.com/iosdevcourse. Посмотрев их и выполнив предлагаемые задания, у вас будет более чем достаточный багаж знаний для создания собственных приложений.

Монетизация

Собирать урожай в виде капусты (придерживаюсь тематики приложения) я решил с помощью рекламы. Выбор пал на Admob. За первую неделю размещения приложения в магазине реклама принесла 4,5 $ при среднем количестве активных пользователей 240 человек в день. Буду надеяться на дальнейший успех, даже помолюсь: “Во имя овса, сена и свиного уха. Аминь”.

009

Дальнейшие планы

Приложение FoodDiary решает только одну задачу — подсчет калорий и БЖУ. В планах есть приложение, которое будет рассчитывать потраченные калории при различных физических упражнениях — бег, велосипед, занятия в тренажерном зале и т. д. Вся информация будет сохраняться в стандартном приложении Здоровье (FoodDiary, если вы ему, конечно, разрешили, также сохраняет полученные с пищей калории и БЖУ в этом приложении). Зная, сколько человек получил калорий с пищей, сколько потратил и его базовый обмен веществ, можно сделать вывод об изменении его веса.

Напутствующие слова

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

Название: FoodDiary — Ваш помощник в подсчете калорий
Издатель/разработчик: RINAT ABIDULLIN
Цена: Бесплатно
Встроенные покупки: Да
Совместимость: Для iPhone
Ссылка: Установить

Pages_ Если вам есть, чем поделиться с другими читателями нашего сайта, пишите на advert@appleinsider.ru и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.

Как обновить сертификат для использования джейлбрейка Pangu на iPhone и iPad

Привязанный джейлбрейк iOS 9.2 – 9.3.3, выпущенный программистами команды Pangu, имеет ограниченный срок действия – спустя 7 дней после взлома системы Apple блокирует сертификат, при помощи которого устанавливается стороннее ПО на iPhone или iPad. Как решить проблему – в материале ниже. Хорошая новость заключается в том, что пользователи, установившие первую версию джейлбрейка, смогут использовать твики […]

Как приготовить фрукты на гриле

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

LEGO® Star Wars™: Пробуждение силы пробуждает воспоминания

tfa

Все что угодно можно сделать из конструктора LEGO. Можно даже сделать из него игру для смартфона. Конструктор LEGO позволяет построить любую картину и воспроизвести любую историю. Создатели этим пользуются, выпуская игры по мотивам известных фильмов. Одним из последних нашумевших хитов стал фильм «Звездные Войны: Пробуждение силы». Игра LEGO® Star Wars™: TFA по мотивам этого фильма уже доступна на Android.

tfa3

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

tfa2

Ничего нового игра LEGO® Star Wars™: TFA в себе не несет. Если вы уже играли в игры LEGO, созданные по мотивам других фильмов, вы представляете, как будет выглядеть игровой процесс. От вас потребуется проходить одну главу за другой, управляя действиями героев и выполняя несложные действия.

tfa4

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

Приложение: LEGO® Star Wars™: TFA
Разработчик: Warner Bros. International Enterprises
Категория: Приключения
Цена: Бесплатно
Скачать: Google Play

Разработчики нашли неиссякаемый источник энергии для смартфонов, взятой прямо «из воздуха»

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