Перейдя в Java и Android из мира C# .NET так и хочется притащить в чужой монастырь свой устав. В данном случае речь пойдет о декларативных состояниях интерфейса (Visual States). Начнем сразу с простой проблемки: у нас есть вьюшка, на которой отображается профиль какого-то пользователя, но, в зависимости от роли текущего пользователя, эта вьюшка может чуть-чуть отличаться. Допустим, у нас есть три роли: guest, member и moderator, и состояния этой вьюшки будут выглядеть следующим образом:
Рубрика «mobile development» - 27
Описание состояний интерфейса в XML вместо кода для Android
2014-12-08 в 10:08, admin, рубрики: android, java, mobile development, visual states, XAML, XML, Разработка под android, со своим уставом в чужой моностырьЭффективный JSON с функциональными концепциями и generics в Swift
2014-12-08 в 10:08, admin, рубрики: functional programming, generics, ios 8, mobile development, swift, вывод типов, Программирование, разработка под iOS, функциональное программированиеЭто перевод статьи Tony DiPasquale «Efficient JSON in Swift with Functional Concepts».
Предисловие переводчика.
Передо мной была поставлена задача: закачать данные в формате JSON с Flickr.com о 100 топ местах, в которых сделаны фотографии на данный момент, в массив моделей:
//------ Массив моделей Places
struct Places {
var places : [Place]
}
//-----Модель Place
struct Place {
let placeURL: NSURL
let timeZone: String
let photoCount : Int
let content : String
}
Кроме чисто прагматической задачи, мне хотелось посмотреть как в Swift работает «вывод типа из контекста» (type Inference), какие возможности Swift в функциональном программировании, и я выбрала для парсинга JSON алгоритмы из статьи Tony DiPasquale «Efficient JSON in Swift with Functional Concepts and Generics», в которой он «протягивает» generic тип Result<A> для обработки ошибок по всей цепочке преобразований: от запроса в сеть до размещения данных в массив Моделей для последующего представления в UITableViewController.
Чтобы посмотреть как Swift работает «в связке» с Objective-C, для считывания данных с Flickr.com использовался Flickr API, представленный в курсе Стэнфордского Университета «Stanford CS 193P iOS 7», написанный на Objective-C.
В результате помимо небольшого расширения Моделей:
extension Place: JSONDecodable {
static func create(placeURL: String)(timeZone: String)(photoCount: String)(content: String) -> Place {
return Place(placeURL: toURL(placeURL), timeZone: timeZone, photoCount: photoCount.toInt() ?? 0, content: content)
}
static func decode(json: JSON) -> Place? {
return _JSONParse(json) >>> { d in
Place.create
<^> d <| "place_url"
<*> d <| "timezone"
<*> d <| "photo_count"
<*> d <| "_content"
}
}
}
extension Places: JSONDecodable {
static func create(places: [Place]) -> Places {
return Places(places: places)
}
static func decode(json: JSON) -> Places? {
return _JSONParse(json) >>> { d in
Places.create
<^> d <| "places" <| "place"
}
}
}
мне самостоятельно пришлось написать только три строчки кода:
Читать полностью »
Дайджест интересных материалов для мобильного разработчика #82 (1-7 декабря)
2014-12-07 в 8:59, admin, рубрики: android, iOS, mobile development, windows phone, маркетинг, мобильные устройства, монетизация, Разработка под android, разработка под iOS, разработка приложенийВ новом дайджесте автоматизация тестирования iOS приложений, новая серия «программирования мышкой» в Swift, Kotlin для Android и локализация приложений для китайского рынка, истории фееричных провалов и новый фреймворк для гибридных приложений от AppGyver. В общем, много всего разного и интересного.
Путь разработчика: истории о моих фееричных провалах, часть 2
2014-12-05 в 19:49, admin, рубрики: game development, gtd, mobile development, Веб-разработка, кидалово, низкий КПД, представьте что вы жёлтый круг, разборки, разработкаВсем привет, с вами снова Delfuego FM, и я наконец-таки созрел, чтобы выложить вторую часть статьи! Вследствие неоднозначной реакции на первую часть, была предпринята попытка выложить вторую на geek times, и… она успешно провалилась. Поэтому придётся совершить небольшой хабрасуицид и выложить её прямо тут! Итак, поехали!..
Однажды я проснулся и понял, что страхи, терзавшие меня на протяжении нескольких лет и препятствовавшие осуществлению заветной мечты, абсолютно беспочвенны. Обладай я этим знанием раньше, список моих проектов и длина счёта в банке могли быть более впечатляющими.
Своей историей, первую часть которой вы можете прочесть тут, я пытаюсь уберечь вас от моих ошибок. Надеюсь, моя история поможет сэкономить вам несколько лет. Это история про разработку игр, но она может быть полезна всем тем, кто желает проявить себя и в других областях (в частности, в области разработки сайтов).
Kotlin для Android, или лёгкий способ перестать программировать на Java
2014-12-04 в 10:46, admin, рубрики: android, android development, java, jetbrains, kotlin, mbltdev, mobile development, Блог компании e-Legion Ltd., Разработка под androidНа нашей конференции мобильных разработчиков #MBLTDev, которая прошла в конце октября в Москве, продуктолог компании JetBrains Илья Рыженков рассказал доклад о языке программирования под Android Kotlin.
Kotlin был разработан в компании JetBrains и публично представлен в 2011 году. В 2012 был открыт исходный код.
Илья рассказал про историю создания языка, преимуществах программирования на Kotlin, отличия Kotlin от Java и о том, что на нем можно делать. А также показал несколько примеров кода на Kotlin для платформы Android.
Читать полностью »
Взрывной рост загрузок после выхода iPhone 6, каким будет мобильный интернет, новый App Store от Xiaomi — и другие новости недели для мобильного разработчика
2014-12-04 в 7:49, admin, рубрики: game development, Google, mobile development, norad, opera, xiaomi, Блог компании KamaGames Studio 
Выход iPhone 6+ дал серьезный рост количества загрузок приложений
Компания Fiksu в своем новом отчете сообщила о том, что запуск iPhone 6 и iPhone 6+ в конце сентября увеличил загрузки приложений в октябре на 42%. Этот вывод сделан на основе анализа количества скачиваний Топ-200 приложений на iOS, при этом неигровые приложения в данном отчете не учитывались.
В течение октября было 7,8 млн загрузок приложений из списка Top-200 в день против 5,5 млн в сентябре. При этом средняя цена за установку в октябре выросла на 21% и составила $1,46.
Так что запуск новых устройств Apple позволяет не только бить рекорды по продажам устройств, но и рекорды по количеству закачек в день!
Читать полностью »
Теория потока: как создать игру, которую полюбят все
2014-12-03 в 7:32, admin, рубрики: game development, mobile development, Блог компании Plarium Global, видеоигры, игры, иммерсия, поток, сценарии, увлечениеВсем привет.
Я – игроголик. Могу две недели потратить на прохождение одного босса. По дороге на работу могу просчитывать стратегию битвы с вражеской армией. Могу упасть со стула из-за того, что не заметила, как отсидела ногу во время трехчасового рейда. Могу и практикую.
Если вы сталкивались с подобными проблемами – добро пожаловать в клуб. Здесь мы, как взрослые и очень серьезные люди, попробуем проанализировать состояние иммерсии, которое и заставляет нас восхищаться игрой и забывать о необходимости есть, спать и жить вне игрового мира. Проще говоря, речь пойдет о потоковом состоянии в видеоиграх.

Читать полностью »
Эксперимент: бесплатно переводим кейворды и описание приложений для App Store и Google Play в обмен на статистику
2014-12-03 в 7:13, admin, рубрики: Alconost, App Store, Google Play, growth hacking, mobile development, Блог компании Alconost, Inc., локализация, мобильные приложения, перевод, продвижение в App Store, продвижение в Google Play, Разработка под android, разработка под iOS, экспериментМы уже писали, как перевод ключевых слов для iOs-приложения увеличил количество загрузок на 767%, а также как локализация интерфейса помогла поднять приложение на десятки позиций вверх в локальных топах Google Play. В обоих случаях на рекламу приложений не было потрачено ни цента.
Мы хотим убедиться, что это не единичные случаи, а реально работающий способ сделать приложение более популярным на локальных рынках. В связи с этим мы предлагаем всем разработчикам принять участие в эксперименте:
- Мы бесплатно переводим описание и кейворды для страницы вашего приложения в Google Play и/или App Store с английского на любой из нашего списка 40+ языков.
- Вы не применяете другие методы продвижения (никакой рекламы, одним словом) в течение месяца.
- Вы делитесь с нами графиком загрузок, покупок и рейтингом вашего приложения в локальном сторе.
- Мы делимся полученной информацией со всем миром в нашем блоге.
Core Data: особенности использования и синхронизация в iCloud
2014-12-02 в 11:17, admin, рубрики: aviasales, core data, icloud, ios development, mblt, mbltdev, mobile development, Блог компании e-Legion Ltd., разработка под iOSНастал вторник, а значит мы выкладываем очередной доклад с конференции мобильных разработчиков #MBLTDev. Доклад посвящен фреймворку Core Data, работы с которым большинство iOS–разработчиков склоны избегать из-за его сложности.
Руслан Шевчук, iOS–разработчик компании Aviasales, не побоялся разобраться с Core Data и на конференции представил доклад о том, как можно использовать его в iCloud.
Руслан рассказал про задачи, которые Core Data решает в приложении Aviasales, его особенности, многопоточность, версионность, синхронизацию, проверку нарушения целостности связей, определение и удаление дубликатов, а также про преимущества Private Queue над Confinement Concurrency.
Читать полностью »
VoiceFabric: технология синтеза речи из облака
2014-12-01 в 11:39, admin, рубрики: mobile development, TTS, аудиокниги, Блог компании Центр речевых технологий (ЦРТ), интерфейсы, озвучивание, Работа со звуком, речевые технологии, синтез речи, телефония 
Сегодня поговорим про перспективы и возможности облачного сервиса VoiceFabric для разработчиков и пользователей. Сервис озвучивает любую текстовую информацию синтезированным голосом в режиме реального времени. Под катом мы подробно расскажем о нашем синтезе, сценариях его использования (стандартных и не очень) и как подключить его к своим проектам, а так же о том, чем он уникален.
Читать полностью »



