iOS: Робота з галереєю (Photos framework). Частина 2

Привіт, Хабр! У цій статті я розповім про роботу з відео, live-фото і відстеження змін в галереї за допомогою Photos framework. Для кращого розуміння статті рекомендую ознайомитися з попередньою статтею.

Читати далі →

Security Week 04: зниклий ботнет, вразливість в Webex, патчі Apple

Важливої технічної новиною тижня в сфері ІБ стало дослідження (новина фахівця з безпеки в проекті Google Project Zero Тависа Орманди про уразливості в плагіні Cisco Webex для браузера Chrome. Тавис спеціалізується на неординарних вразливості (кілька патчів для продуктів «Лабораторії», до речі, випущені завдяки йому), але проблема в плагіні для популярного сервісу відеоконференцій відноситься до зовсім вже нестандартним.

Конференція Webex — це по суті окрема програма, яка запускається на вашому комп'ютері, після того як участь було ініційовано у браузері. Відповідно, для виконання нативного коду, плагін Cisco Webex використовує інтерфейс Native Messaging. Суть бага в тому, що якщо передати плагіну URL з певною магічною рядком», то він запустить будь-код, без жодних перевірок. Мабуть, слід назвати це фичей: явно було зроблено для спрощення процесу запуску потрібної програми без особливих церемоній. В результаті, користувач може зловити троян, відвідавши підготовлену веб-сторінку (будь-яку), і якшо один раз OK на пропозицію почати веб-конференцію.

Уразливість була пофикшена швидко, але, на думку ряду дослідників (включаючи самого Тависа), не до кінця. Нова версія плагіна для Chrome обмежує можливість запуску коду при наявності диво-рядки, тільки якщо URL починається з https://*.webex.com/. Очевидно, що це значно обмежує можливість експлуатації, але будь-яка XSS уразливість на webex.com може бути використана в парі з магічною рядком для атаки.

Читати далі →

Розробка архітектури нового додатка для пасажирів Über

— Здрастуйте. Скажіть, скільки коштує зробити додаток типу Über?

Менеджер по вхідним заявками нашої компанії отримує дзвінки з таким змістом стабільно раз в тиждень. Розуміти його варто, як правило, так: або клієнт хоче собі настільки ж успішний аналог програми для зв'язку між пасажиром і водієм, або Über для ______ (вписати потрібну галузь).

У такі моменти ми відповідаємо, що Uber — це технічно дуже складний проект з мільйонними інвестиціями і сотнями тисяч людиногодин розробки в місяць, і що робити його клон не дуже доцільно.

Тепер у нас є аргумент у захист нашої позиції. Розробники Über опублікували в блозі компанії замітку про досвід перенесення програми з однієї архітектури на нову, власну. Це дуже масштабний захід підтверджує, що Uber — далеко не елементарне додаток. Ми не могли пройти повз цього матеріалу і не перевести його.

Стаття може бути корисною не тільки мобільним розробникам, але і менеджерам, які стикаються з такою ситуацією.



Читати далі →

Дайджест цікавих матеріалів для мобільного розробника #187 (16-22 січня)

В новому дайджесті історія додатки для вивчення російської мови, купівля платформи Fabric, «індустріальний» звіт App Annie за 2016 рік, магія води і бібліотеки, дизайн, інфраструктура. Доброго читання!

Читати далі →

UIColor і UIImage в XCode 8 за допомогою символів

Робота з UIImage і UIColor з коду була не дуже зручною, тому що важко уявити собі колір
UIColor(red: 0.2, green: 0.4, blue: 0.6, alpha: 1)
або
UIImage(named: "pattern25")
, якщо ти не дизайнер, звичайно.
Для мене було дивом те, що Apple зробили в останніх версіях Playground, а саме
  • Можливість вказувати колір, вибираючи з палітри кольорів:
image
  • Можливість вибирати зображення з тих, що знаходяться в ресурсах:
image
Колір представлений дуже наочно і при натисканні на нього, можна дізнатися які значення RGBA він має і подтюнить його за необхідності.
Мініатюри картинок теж виглядають набагато наочніше, ніж просто назви ресурсів. До того ж инициализируя UIImage за допомогою failable initializer
init(named: String) -> UIImage?
ми ризикуємо отримати
nil
, неправильно вказавши ім'я ресурсу. Літерали ж завжди повертають значення.
Читати далі →

Пишемо універсальний UICollectionViewLayout

UICollectionView може мати практично будь-розташування елементів. Елементи можуть мати як фіксовані розміри, так і динамічні. У даній публікації буде приділена увага розгляду лише тим UICollectionViewLayout, розміри елементів яких фіксовані і задаються певним алгоритмом (типовий приклад — розташування іконок на екрані Home вашого iPhone). Так само буде зроблена спроба описати підхід до формування єдиного UICollectionViewLayout.

Головна особливість подібних UICollectionViewLayout полягає в тому, що в кожному такому розташуванні можна виділити якусь закономірність, за якою відбувається повторення розмірів і положень елементів. Надалі будемо називати це шаблоном. Відповідно, щоб зробити UICollectionViewLayout потрібно скласти алгоритм, який формує шаблон. Приклад шаблону повторення:

image

Читати далі →

IT-meetup Superjob «iOS — архітектура дизайну, коду, деплоя»

26 січня запрошуємо iOS-розробників на зустріч «iOS — архітектура дизайну, коду, деплоя» в новий офіс Superjob на Малій Дмитрівці. Приходьте обмінюватися досвідом!
Superjob продовжує серію IT-митапов. В цьому році ми зробимо акцент на розробці мобільного та Data Science.image

Читати далі →

Анонс конференції Mobius 2017: Більше мобільної розробки, хорошої і різної

Привіт Хабр!

Анонс минулого Mobius ми почали з того, що розібралися з фидбеками і пообіцяли зробити конференцію краще. Якщо вірити відгукам учасників – з поставленою метою ми впоралися:

«В цілому все дуже сподобалося. До цього був 2 роки назад і скажу, що конференція змінилася просто в рази. З'явилося безліч цікавих доповідей, не було нудних переказів і просувань своїх продуктів.»

Однак ми не зупиняємося на досягнутому і продовжуємо серію Mobius. Цього разу конференція відбудеться 21-22 квітня 2017 року в Санкт-Петербурзі. Так, цього разу конференція проходитиме протягом двох днів: минулого разу учасники часто нарікали на надто високу завантаження до кінця, тепер за рахунок дводенного формату і доповідей стане більше, і сприймати їх буде простіше. В програму увійдуть не тільки кращі спікери минулих Mobius, але і нові особи. Крім того, планується новий формат доповідей і спілкування зі спікерами.

Подробиці під катом.


Читати далі →

Один додаток для трьох платформ



Ми зараз дуже задоволені внутрішнім пристроєм додатки Aword: його легко підтримувати, розвивати і тестувати, а деплой нових версій відбувається одночасно на всіх платформах. Але так було не завжди. Сьогодні ми розповімо про те, як ми йшли по шляху універсалізації, наступаючи на граблі і набираючись досвіду.

Читати далі →

ASP.NET Core: Створення серверних служб для мобільних додатків

Представляємо другу частину серії статей, присвячених розробці на ASP.NET Core. У цьому навчальному матеріалі ви дізнаєтеся, як створювати серверні служби за допомогою ASP.NET Core MVC для підтримки мобільних додатків.

Читати далі →