Just Developer Blog

Коротко и ясно о разработке на C#, Java, Swift. Под Android, iOS, WinForms и Unity

Получение информации о состоянии батареи в MacOS (выполнением консольной команды)

2 января 2017, 12:44

После обновления MacOS до Sierra я столкнулся с проблемой — в статус баре исчезла информация об оставшемся времени работы от батареи. Проблема на самом деле решается очень просто — можно установить стороннее приложение Battery-Time-Remaining, которое является настоящим швейцарским ножом в области работы с батареей макбука. Но мне захотелось разобраться как можно получить информацию об оставшемся времени работы от батареи в MacOS и написать свое приложение для статус бара.


Существует два способа получения состояния батареи в MacOS:


  1. (правильный) при помощи набора функций IOPowerFunctions фреймворка IOKit;
  2. (быстрый) выполнением консольной команды “pmset -g batt” и парсинга вывода.

Работа с AVAudioPlayer и MPNowPlayingInfo (iOS)

18 января 2016, 23:11

В ходе разработки приложений под iOS часто возникает необходимость проиграть аудио-файл, например композицию или эффект. Наиболее простым способом для этого в iOS является использование класса AVAudioPlayer. Он является частью фреймворка AVFoundation, так что нам потребуется поставить на него using.

Ниже представлен код хэлпера, упрощающего работу с этим классом.

Использование QLPreviewController для просмотра файлов (iOS)

13 января 2016, 22:10

Для реализации просмотра файлов различных форматов (изображения, word, excel, txt, медиа и т. п.) в iOS существует очень удобный класс QLPreviewController. Для его удобного использования необходимо сделать следующее:


  1. Создать класс-наследник QLPreviewController, который инкапсулирует все детали реализации
  2. Создать класс QLPreviewControllerDataSource, который будет являться источником данных для контроллера
  3. Создать классы-наследники QLPreviewItem, которые будут хранить информацию о просматриваемом элементе

Создание и удаление записей в календаре (iOS)

6 января 2016, 18:38

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


Вся работа с календарем строится через фреймворк EventKit, при этом последовательность действий для создания записи примерно следующая:


  1. Создать экземпляра класса EKEventStore
  2. Запросить через него разрешение на работу с календарем
  3. В completionHandler реализовать код, который будет создавать запись
  4. При создании записи необходимо сначала найти наш кастомный календарь EKCalendar (или создать его, если его еще нет)
  5. Создать экземпляр класса EKEvent (это и будет наша запись) и установить для него заголовок, сопроводительный текст, время начала и окончания
  6. Создать и добавить ремайндер (экземпляр класса EKAlarm), который описывает когда должно сработать напоминание о записи

Использование NSUrlSession для загрузки файлов (iOS)

3 января 2016, 10:53

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


  1. Не высокая производительность
  2. Прерывание загрузки при блокировке устройства или уходе приложения в бекграунд

Для решения вопроса с загрузкой файлов наиболее правильным способом будет кардинально переписать загрузку на использование NSUrlSession.

Ctrl + ↓ Ранее