WWDC 2017

WWDC的核心,Apple的но,похоже

LLVM,Xcode等

苹果,похоже,решили,чтонеплохобылобыподдерживатьC ++。 Вэтомгоду的Xcodeполучилподдержкурефакторингавплюсах,причемто,чтопоказали,выглядитдостаточновкусно – умный重命名,которыйможетвшаблоны,генерациятелметодовподекларации,экстракты – вобщем,то,чтовнормальныхязыкахнормальныеIDEумеютужеочень давно,теперьможетзаработатьивплюсах。 Аможетинезаработать,этожеXcode。 Крометого,вродекактеперьможнозапускатьнесколькосимуляторовсразу,равнокакистартоватьbot’овдляCIпрямонамашинеразработчика,неустанавливаяMacOS的服务器。

苹果LLVMполучилускоренныйLTO,пакновыхпроверок,未定义的行为消毒剂(возможно,онаужеесть,нотеперьможнобудетвключатьитрогатьеёизUI’чикаXcode中),поддержкунесколькихC ++ 17конструкций。 Существующиеуже线程и地址сUI的санитайзерынаучилисьнесколькимновымтрюкамсотображениемихвUI-е。

Dyldполучилграндиозноеобновлениедотретьейверсии(с2005-гопримерногодабылаверсия2)。 Теперьонразделеннатричасти,одна – демон,анализирующийзависимостимеждубинарникамиидинамическимибиблиотекамиикеширующаяихвтакназываемые“倒闭潮”,другая – небольшаячасть,запускаемаяпередстартомприложения,изагружающаяэтисамые关闭,и,наконец,кешдля关闭。 关闭теперьявляетсяихцентральнойконцепцией,посути,этозакешированноезнаниеотом,какиединамическибиблиотекиикакнеобходимозагрузитьдлякаждогоприложения。 苹果обещают,чтостартприложенийдолженускориться。 Крометого,винструментахдобавилиспециальныйтиппроверкидляпрофилировкивременистартаприложения – тогостарта,чтопроисходитпередвызовомнепосредственноmain’а。

Интересныеtalk’и:

  • LLVM中的新功能(тольковтораяполовина)(https://developer.apple.com/videos/play/wwdc2017/411/)
  • 应用启动时间:过去,现在和将来(https://developer.apple.com/videos/play/wwdc2017/413/)
  • 使用Xcode运行时工具查找错误(https://developer.apple.com/videos/play/wwdc2017/406/)

大中央派遣

ВНЕЗАПНОполучилобновление。 ДобавилсяновыйвкусныйAPI,即使用отслеживанияфайловсподписываниемнасобытия。 Крометого,многоговорятотом,насколькоэффективноегоисполозоватьдлямногопотоносто/к

Вцелом,разработчикампод的iOSсмотретьобязательно,остальным-толькоеслихочетсяувидетьприятныйинтерфейсдлятаскдиспатчера,ането,чтообычновидите。

  • 现代化大中央调度的使用(https://developer.apple.com/videos/play/wwdc2017/706/)

SiriKit

Небольшоеэволюционноеобновление。 Улучшилидомен付款(вообщеговорили,чтоегодобавили,но,по-моему,онитакбыл),добавилидомен。 Иеслипоследнийвыглядиткакигрушка(сканированиекодов,какобщепринятых,вродеQR,такикастомных,вродетех,чтоиспользуютсяFacebook的Messenger’ом),то列表和注释смотритсякакнечтодействительнополезное – теперьлюбоеприложениеможетсоздаватьчек-листыили ноуткиспомощьюSiri。

  • SiriKit的新增功能(https://developer.apple.com/videos/play/wwdc2017/214/)

核心ML

То,чтополностьюоправдываетсуществованиеWWDC 2017主题。

Новыйфреймворк,созданныйдляоблегченияработыс机器学习。 И,похоже,этоемуудается。

Приложениючерез的Xcodeскармливаетсяфайлстакназываемоймоделью,вкоторойможетбытьнасамомделеоченьмногоразныхвещей – обученнаянейроннаясеть,кпримеру,хотяподдерживаютсянетолькосети。 关于Xcode,请使用Swift’еилиObjective-C,这是которыйможнотутиетотелиили的完整版本。 Придеплоеприложениясамамодельуезжаетнаустройствоввидебандларесурсов。

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

Во-первых,苹果выложилакучуготовыхмоделей,скоторымиможноиграться,вотсюда:https://developer.apple.com/machine-learning

Во-вторых,苹果выложилав开源наборутилитнаPython’е,которыйпозволяетгенерироватьмоделидля核心MLизужеобученныхмоделейотдругихсервисов/утилит(https://developer.apple.com/documentation/coreml/converting_trained_models_to_core_ml)。 Этооченьзабавно,посколькукогдаяпроходилкурспоMLнаUdacityтамиспользовалсякакразscikit学习,и,получается,обученныевовремякурсамоделиятеперьмогупопытатьсясконвертироватьизапуститьспомощью核心ML。

Издругихособенностей – фреймворкактивноиспользует加快и金属дляускоренияработы,можетработатькакнаCPU,такинаGPU,ипричемсамрешает,какиезадачигдевыполнять。 Всевычисленияпроизводятсятольколокально,苹果несколькоразделалаакцентнаэтом。 Приэтомработаетэто-трекингпарня,выделывающеготрюкинаводеврева Интересно,конечно,посмотреть,какэтоработаетнастаричкахвродемоего5S。

Наданныймоментестьподдержка:

  • 树木乐团
  • 支持向量机
  • 广义线性模型
  • 前馈神经网络
  • 卷积神经网络
  • 递归神经网络

Вцелом,этоименното,чтостанетмоейследующейигрушкой。

  • 核心ML简介(https://developer.apple.com/videos/play/wwdc2017/703/)
  • 深度学习的核心ML(https://developer.apple.com/videos/play/wwdc2017/710/)

NLP框架

МожетработатьповерхCore ML,гораздопрощевосвоении。 Работаеттолькостекстом(чтодостаточноочевидноизназвания),ноделаетэтопросто,элегантнони。

Умеет:

  • Идентифициров​​атьязык
  • Делатьтокенизациютекста
  • Определятьитегироватьчастиречи
  • Леммизацию
  • Определениеименсобственных

Списокязыков,вкоторыхфункционалподдерживаетсяполностью:английский,французский,итальянский,немецкий,испанский,португальский,русский,турецкий。

Идентификацияязыкаработаетна52-хязыках。

  • 自然语言处理和您的应用程序(https://developer.apple.com/videos/play/wwdc2017/208/)

愿景框架

Ещеодин高级фреймворк,теперьужедлякомпьютерногозрения。 标记API,которыйизкоробкиумеет:

  • Определениелицнафотографии(дажечастейлица,вродегуб,носа,глаз);
  • Определениепрямоугольников(гм…);
  • Определениекодовдлясканирования;
  • Распознаваниетекста;
  • Трекингобъекта。

Вцелом,выглядитзабавно,нопослеOpenCVтакиевещивау-эффектаневызывают。 РазвечтоегодействительноОЧЕНЬпростоиспользовать。

  • 视觉框架:基于Core ML(https://developer.apple.com/videos/play/wwdc2017/506/)