За закрытой дверью фронтенда ЕФС

Автор: admin от 7-04-2017, 16:50, посмотрело: 305

В этой статье мы расскажем о библиотеке компонентов Единой фронтальной системы (ЕФС)  и как в целом устроен фронтенд платформы.

За закрытой дверью фронтенда ЕФС

Категория: Программирование, Веб-разработка, iOS

 

Свобода выбора: freelance или крупная корпорация

Автор: admin от 3-04-2017, 18:00, посмотрело: 291

В программе ЕФС мы делаем по-настоящему крупные проекты, высокие темпы развития зачастую ставят нас в ситуацию ресурсного дефицита по причине того, что скорость найма сильно не дотягивает до скорости происходящих изменений.

Какое решение в такой ситуации принимает менеджмент?

Свобода выбора: freelance или крупная корпорация

Категория: Веб-разработка, iOS

 

Дайджест интересных материалов для мобильного разработчика #197 (27 марта-2 апреля)

Автор: admin от 2-04-2017, 21:20, посмотрело: 241

На этой неделе у Samsung вышел новый Galaxy, у Apple новая iOS 10.3, в которой наконец-то разработчики могут отвечать на отзывы пользователей, вышел новый прогноз для рынка приложений от App Annie в котором прогнозируется, что уже в 2017 магазины приложений Android обгонят по доходам App Store. Ну и традиционно много всего другого интересного.

Дайджест интересных материалов для мобильного разработчика #197 (27 марта-2 апреля)

Категория: Веб-разработка, Android, iOS

 

Гайд по созданию простого фоторедактора

Автор: admin от 31-03-2017, 16:30, посмотрело: 463

Сегодня мы предлагаем читателям подробное руководство по созданию простого фоторедактора на iOS. Для опытных разработчиков задача несложная, но новичкам подобный пошаговый разбор всего процесса, возможно, окажется полезен. Мы отдали предпочтение классической среде разработки для выбранной операционной системы – Xcode version 8.2.1. Разработку будем вести, опять же, на классическом объектно-ориентированном языке программирования Objective-C.

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


  • Загрузить фотографию из галереи

  • Создать коллекцию с фильтрами

  • Реализовать возможность применять любой из фильтров на выбранную нами фотографию

  • Сохранить результат в галерею.

  • Категория: Веб-разработка, iOS

     

    Мобильная платформа. Архитектура гибридных приложений на ReactNative

    Автор: admin от 30-03-2017, 11:00, посмотрело: 400

    Наверное, вы уже не раз слышали о мобильной разработке на ReactNative в Единой Фронтальной Системе (ЕФС) Сбербанка. Мы уже писали для чего мы используем саму технологию ReactNative в своих разработках, а также рассказывали как не бояться это делать.

    Мобильная платформа. Архитектура гибридных приложений на ReactNative

    Сегодня мы взглянем с высоты птичьего полета на построение архитектуры мобильных приложений с использованием ReactNative, Objective-C, Typhoon, VIP, SOA, TypeScript, React и Redux.

    Категория: Программирование, Веб-разработка, iOS

     

    Дайджест интересных материалов для мобильного разработчика #196 (19-26 марта)

    Автор: admin от 26-03-2017, 16:35, посмотрело: 422

    На этой неделе вышла предварительная версия Android O, новый iPad и старый, но красный iPhone, мы учились различать UI и UX, разрабатывать на React Native, рассуждать про игры и искусственный интеллект. Добро пожаловать в новый дайджест!

    Дайджест интересных материалов для мобильного разработчика #196 (19-26 марта)

    Категория: Веб-разработка, Android, iOS

     

    Паттерны проектирования, взгляд iOS разработчика. Часть 2. Наблюдатель

    Автор: admin от 26-03-2017, 10:35, посмотрело: 376

    Паттерны проектирования, взгляд iOS разработчика. Часть 2. Наблюдатель

    Содержание:


    Часть 0. Синглтон-Одиночка
    Часть 1. Стратегия
    Часть 2. Наблюдатель


    Сегодня мы разберемся с "начинкой" паттерна "Наблюдатель". Сразу оговорюсь, что в мире iOS у вас не будет острой необходимости реализовывать этот паттерн, поскольку в SDK уже есть NotificationCenter. Но в образовательных целях мы полностью разберем анатомию и применение этого паттерна. К тому же, самостоятельная реализация может обладать большей гибкостью и, в некоторых случаях, быть более полезной.

    Категория: Веб-разработка, Game Development, iOS

     

    Первый опыт разработки игры для Apple Watch

    Автор: admin от 24-03-2017, 06:15, посмотрело: 374

    Всем привет! В своей статье я хочу рассказать о опыте разработки игры для Apple Watch. Игра называется Space Beaver(Бобер и Космос). Она также доступна и на iphone. Но в этой статье будет рассказ именно о версии для часов. Исходный код здесь.

    Первый опыт разработки игры для Apple Watch

    Категория: Программирование, Веб-разработка, Game Development, Apple, iOS

     

    Немного о функторах и функциях высшего порядка в Swift

    Автор: admin от 21-03-2017, 16:35, посмотрело: 392

    Коллекции


    Разработчики, перешедшие на Swift с Objective-C, не могли не заметить удобнейший функционал, который предоставляет Swift для работы с коллекциями. Использование диапазонов в индексах
    let slice = array[1..<10]
    удобный синтаксис инициализации и добавления элемента в коллекцию, расширяемость, и, конечно функции высшего порядка

    Filter


    Самой часто используемой функцией для коллекций, пожалуй, является filter
    let alex = Person(name: "Alex", age: 23)
    let jenny = Person(name: "Jenny", age: 20)
    let jason = Person(name: "Jason", age: 35)
    let persons = [alex, jenny, jason]
    let jNamedPersons = persons.filter { $0.name.hasPrefix("J") } // [jenny, jason]


    Reduce


    Реже используемой, но при этом крайне выразительной и удобной является функция reduce
    
    let ages = persons.map{ Float($0.age) }
    let average = ages.reduce(0, +) / Float(persons.count)


    Можно писать свои функции высшего порядка и это довольно увлекательно:
    func divisible(by numbers: Int...) -> (Int) -> Bool {
        return { input -> Bool in
            return numbers.reduce(true) { divisible, number in
                divisible && input % number == 0
            }
        }
    }
    
    let items = [6, 12, 24, 13]
    let result = items.filter(divisible(by: 2, 3, 4)) // [12, 24]


    Map


    Функциональные понятия функторов и монад пришли к нам из языка Haskell. Говорят, невозможно просто взять и понять, что такое монада, а уж тем более невозможно это объяснить. Тем не менее мы можем временно отбросить все сложности и объяснить себе только то, что действительно необходимо, а те, кто захочет закопаться поглубже, могут начать с изучения Haskell.

    Итак, для простоты мы можем считать, что функтор это контейнер, к которому применима функция map, а монада это функтор, к которому применима функция flatMap.

    Поскольку коллекции это контейнеры, и в Swift для них определена функция map, они могут выступать в роли функторов:
    для того, чтобы трансформировать коллекцию одного типа в коллекцию другого типа, возьмем наш массив persons и получим из него массив возрастов типа [Int]
    let ages = array.map{ $0.age } // [23, 20, 35]


    FlatMap


    И в роли монад:
    для того, чтобы из массива oprtional типов вернуть массив не опциональных значений
    let optionalStrings: [String?] = ["a", nil, "b", "c", nil]
    let strings = optionalStrings.flatMap { $0 } // ["a", "b", "c"]

    для того, чтобы расширить первоначальную коллекцию
    let odds = [1,3,5,7,9]
    let evensAndOdds = odds.flatMap { [$0, $0 + 1] } // [1,2,3,4,5,6,7,8,9,10]

    Категория: Программирование, Веб-разработка, iOS

     

    Козел отпущения или MVC в iOS

    Автор: admin от 20-03-2017, 19:05, посмотрело: 445

    В последние несколько лет я встретил множество проектов, разработчиков и статей, которые обвиняют Model-ViewController архитектуру во многих, если не во всех бедах, которые происходят в iOS-сообществе.

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

    Категория: Веб-разработка, iOS