Un module de formation à Linux, pour débutants, élèves ou enseignants qui souhaiteraient . se familiariser avec un système d'exploitation "libre". Un guide " pas à pas"de découverte de Linux.
This document discusses Safari app extensions for macOS. It provides a history of extensions in Safari and introduces Safari app extensions, which are bundled within macOS apps rather than distributed separately. Benefits of Safari app extensions include automatic updates through the Mac App Store and secure two-way communication between the extension and host app. The document also covers migrating existing extensions to the Safari app extension model and demonstrates communication between the extension and host app.
Une approche qui permet d'alimenter des table views de manière déclarative, d'y combiner des données hétérogènes, et de gérer facilement et surtout de manière fiable les updates, par Amadour Griffais.
The document discusses an architecture for mobile applications using MVC patterns. It describes layers for models, views, controllers, storage, and routing. The model layer defines app domains and interfaces with storage. Storage handles persistence and converts data. Controllers are kept light by coordinating views through a router layer. Dependencies are injected to improve testability and reuse of models, storage and views across the app.
This document discusses the problems with using the Alamofire library for making HTTP requests and proposes an alternative called Nikka. It outlines issues with Alamofire like being difficult to understand and extend. Nikka is presented as a simpler solution that provides base functionality for networking, supports different APIs, and allows for extensions. The implementation of Nikka using classes for providers and routes is demonstrated along with examples of requesting data and extensions for JSON parsing and futures/Rx support.
Un module de formation à Linux, pour débutants, élèves ou enseignants qui souhaiteraient . se familiariser avec un système d'exploitation "libre". Un guide " pas à pas"de découverte de Linux.
This document discusses Safari app extensions for macOS. It provides a history of extensions in Safari and introduces Safari app extensions, which are bundled within macOS apps rather than distributed separately. Benefits of Safari app extensions include automatic updates through the Mac App Store and secure two-way communication between the extension and host app. The document also covers migrating existing extensions to the Safari app extension model and demonstrates communication between the extension and host app.
Une approche qui permet d'alimenter des table views de manière déclarative, d'y combiner des données hétérogènes, et de gérer facilement et surtout de manière fiable les updates, par Amadour Griffais.
The document discusses an architecture for mobile applications using MVC patterns. It describes layers for models, views, controllers, storage, and routing. The model layer defines app domains and interfaces with storage. Storage handles persistence and converts data. Controllers are kept light by coordinating views through a router layer. Dependencies are injected to improve testability and reuse of models, storage and views across the app.
This document discusses the problems with using the Alamofire library for making HTTP requests and proposes an alternative called Nikka. It outlines issues with Alamofire like being difficult to understand and extend. Nikka is presented as a simpler solution that provides base functionality for networking, supports different APIs, and allows for extensions. The implementation of Nikka using classes for providers and routes is demonstrated along with examples of requesting data and extensions for JSON parsing and futures/Rx support.
iOS 9 introduced several new features including split screen multitasking on iPad, search APIs, app thinning technologies like bitcode and app slicing, keyboard shortcuts, 3D Touch features, updated UI components like UIAlertController and SFSafariViewController, on demand resources, and the new Contacts framework. It also improved existing technologies like Auto Layout with new syntax and components like UIStackView.
The document discusses rebranding an iOS app called Capitaine Train to Captain Train. It goes over changes needed like updating the app name in code and assets. It also provides the timeline for the rebranding process which will take 6 weeks and includes a private beta period. Stylesheet colors are also defined for the new Captain Train brand.
This document discusses communication methods for smart things and their requirements. It lists requirements like low energy, mobility, proximity detection, and security. Potential communication mediums are then presented, including Bluetooth, BLE, WiFi, Zigbee, LPWAN networks, mobile networks, NFC/RFID, ultrasound, and voice. Examples of smart devices and the communication methods they use are provided, such as Philips Hue lights using Zigbee, iBeacons using BLE, WiFi scales, smartwatches using BLE/WiFi/BT, and Alexa using WiFi. Bluetooth iAP is described as allowing only accessory and user connection through BLE, with iOS app connection, energy efficiency,
This document is from a talk about using Fastlane, a tool for mobile app deployment. It discusses how Fastlane can be used to continuously integrate and deliver mobile apps by automating tasks like syncing certificates and profiles, taking screenshots, uploading metadata and builds, and starting the app review process. The talk encourages contacting the organizers to participate in their weekly Wednesday tech talks on various mobile development topics.
This document discusses errors in Swift. It covers topics like:
- Any type can adopt the Error protocol in Swift
- Functions, computed properties, and subscripts can throw errors
- catch blocks can match patterns to catch errors
- Common errors include ignoring errors or not handling them properly
- Advanced topics include rethrowing errors, result equivalency, and different strategies for handling and responding to errors.
This document provides instructions for setting up Swift programming on a Raspberry Pi, including downloading Swift binaries, installing dependencies, and using the SwiftyGPIO library to access GPIO pins. Key steps include installing Ubuntu Core or Raspbian on an SD card, installing Swift binaries from a URL or building from source, installing dependencies like libxml2 and clang, and using SwiftyGPIO to configure pin directions and read/write values to control an output pin based on an input pin. Tools like SourceKitten and rsub enable using the Swift compiler and debugger remotely over SSH.
This document discusses CloudKit, Apple's backend as a service (BaaS) that provides a turnkey backend solution for mobile apps. CloudKit allows developers to store and sync data across devices without needing backend server experience. It features fields for common data types, querying, sorting, pagination and push notifications. While providing a more user-friendly dashboard than manual coding, CloudKit's image bandwidth is limited and the public database had bugs in early iOS 10 versions. The document also answers questions about CloudKit's capabilities and limitations.
This document introduces SuperCombinators, a parser combinator framework for Swift that aims to provide a declarative and memory-safe API. It discusses existing parser combinator solutions that had downsides like custom operators or memory leaks. The framework takes an approach of defining parsers as strings that are transformed into closures. It distinguishes between patterns that traverse strings and parsers that extract values, allowing for useful extensions and simplification of composition operators. Recursive parsers are handled by lazily generating parsing functions with unowned references to avoid reference cycles. An example demonstrates parsing integers and sums recursively in a declarative manner.
This document discusses monads in functional programming. It provides examples of optionals, arrays, and functions in Swift that exhibit monadic properties. It then defines monads more formally and describes some common monad types like the writer, reader, and IO monads. It shows how monads allow encapsulating effects like logging or environment variables while preserving referential transparency. The document concludes by discussing potential applications of monads to mobile apps.
This document discusses mutation testing as a way to test code and test quality. Mutation testing involves intentionally breaking code in small ways (e.g. changing + to *) and ensuring tests catch these "mutant" versions. While code coverage measures how much code is executed, mutation testing checks that tests are thorough by breaking the code in multiple ways. The document provides examples of mutation testing and operators as well as a brief history of the technique. It notes that while time consuming, mutation testing can help identify faults that may cascade and ensure tests are comprehensive.
Thomas Levy-Mouisset (Meetic) - La puissance de débugging des app groups
Avez-vous déjà livré votre menu debug en Prod ? Nous oui, et nous avons trouvé une solution originale basée sur les App groups pour que cela n'arrive plus jamais.
iOS 9 introduced several new features including split screen multitasking on iPad, search APIs, app thinning technologies like bitcode and app slicing, keyboard shortcuts, 3D Touch features, updated UI components like UIAlertController and SFSafariViewController, on demand resources, and the new Contacts framework. It also improved existing technologies like Auto Layout with new syntax and components like UIStackView.
The document discusses rebranding an iOS app called Capitaine Train to Captain Train. It goes over changes needed like updating the app name in code and assets. It also provides the timeline for the rebranding process which will take 6 weeks and includes a private beta period. Stylesheet colors are also defined for the new Captain Train brand.
This document discusses communication methods for smart things and their requirements. It lists requirements like low energy, mobility, proximity detection, and security. Potential communication mediums are then presented, including Bluetooth, BLE, WiFi, Zigbee, LPWAN networks, mobile networks, NFC/RFID, ultrasound, and voice. Examples of smart devices and the communication methods they use are provided, such as Philips Hue lights using Zigbee, iBeacons using BLE, WiFi scales, smartwatches using BLE/WiFi/BT, and Alexa using WiFi. Bluetooth iAP is described as allowing only accessory and user connection through BLE, with iOS app connection, energy efficiency,
This document is from a talk about using Fastlane, a tool for mobile app deployment. It discusses how Fastlane can be used to continuously integrate and deliver mobile apps by automating tasks like syncing certificates and profiles, taking screenshots, uploading metadata and builds, and starting the app review process. The talk encourages contacting the organizers to participate in their weekly Wednesday tech talks on various mobile development topics.
This document discusses errors in Swift. It covers topics like:
- Any type can adopt the Error protocol in Swift
- Functions, computed properties, and subscripts can throw errors
- catch blocks can match patterns to catch errors
- Common errors include ignoring errors or not handling them properly
- Advanced topics include rethrowing errors, result equivalency, and different strategies for handling and responding to errors.
This document provides instructions for setting up Swift programming on a Raspberry Pi, including downloading Swift binaries, installing dependencies, and using the SwiftyGPIO library to access GPIO pins. Key steps include installing Ubuntu Core or Raspbian on an SD card, installing Swift binaries from a URL or building from source, installing dependencies like libxml2 and clang, and using SwiftyGPIO to configure pin directions and read/write values to control an output pin based on an input pin. Tools like SourceKitten and rsub enable using the Swift compiler and debugger remotely over SSH.
This document discusses CloudKit, Apple's backend as a service (BaaS) that provides a turnkey backend solution for mobile apps. CloudKit allows developers to store and sync data across devices without needing backend server experience. It features fields for common data types, querying, sorting, pagination and push notifications. While providing a more user-friendly dashboard than manual coding, CloudKit's image bandwidth is limited and the public database had bugs in early iOS 10 versions. The document also answers questions about CloudKit's capabilities and limitations.
This document introduces SuperCombinators, a parser combinator framework for Swift that aims to provide a declarative and memory-safe API. It discusses existing parser combinator solutions that had downsides like custom operators or memory leaks. The framework takes an approach of defining parsers as strings that are transformed into closures. It distinguishes between patterns that traverse strings and parsers that extract values, allowing for useful extensions and simplification of composition operators. Recursive parsers are handled by lazily generating parsing functions with unowned references to avoid reference cycles. An example demonstrates parsing integers and sums recursively in a declarative manner.
This document discusses monads in functional programming. It provides examples of optionals, arrays, and functions in Swift that exhibit monadic properties. It then defines monads more formally and describes some common monad types like the writer, reader, and IO monads. It shows how monads allow encapsulating effects like logging or environment variables while preserving referential transparency. The document concludes by discussing potential applications of monads to mobile apps.
This document discusses mutation testing as a way to test code and test quality. Mutation testing involves intentionally breaking code in small ways (e.g. changing + to *) and ensuring tests catch these "mutant" versions. While code coverage measures how much code is executed, mutation testing checks that tests are thorough by breaking the code in multiple ways. The document provides examples of mutation testing and operators as well as a brief history of the technique. It notes that while time consuming, mutation testing can help identify faults that may cascade and ensure tests are comprehensive.
Thomas Levy-Mouisset (Meetic) - La puissance de débugging des app groups
Avez-vous déjà livré votre menu debug en Prod ? Nous oui, et nous avons trouvé une solution originale basée sur les App groups pour que cela n'arrive plus jamais.
Jordhan Léoture (Octo) - Asynchronous Swift
Comment simplifier et améliorer l’asynchronisme dans nos applications ?
Je vous présenterai quelques astuces afin d’exploiter au mieux GCD.
This document discusses visual accessibility features for blind and visually impaired users such as voice over, color filters, color inversion, and dynamic types. It provides demos of these features and recommends using smart color inversion to support users with visual impairments in apps. The document was presented by David Bonnet and discusses accessibility options for the CocoHeads Nantes conference on February 15, 2018.
This document discusses how to test push notifications in UI tests, including: sending notifications through a testing library called NWPusher; handling interactions on received notifications; and targeting multiple apps like the Springboard. It provides code examples for getting a device token, sending a notification, and testing different interaction types. While useful for testing analytics and notification workflows, the document notes UI testing push notifications has limitations in only working on real devices and potential stability issues.
This document provides lessons learned about developing Internet of Things (IoT) applications. It discusses using unit tests to debug IoT applications, implementing a data transformation layer to convert between data formats, and unit testing models. It also recommends simulating Bluetooth Low Energy (BLE) functionality on iOS simulators using wrappers and protocols. The document emphasizes simulating functionality as much as possible and applying server-side development principles to IoT apps.
The document discusses the HomeKit framework which allows controlling home accessories like thermostats, lights, and sensors from iOS devices and Siri. It covers setting up accessories by discovering them on the local network, adding them to rooms in the HomeKit home database, and naming their services. It also explains how to control accessories by reading and writing characteristic values, setting up notifications for changes, and creating automations with triggers and scenes. Security features like end-to-end encryption using keys stored locally are highlighted.
This document discusses using CocoaPods to build a modular iOS application with reusable components. It outlines slicing an app into modular "bricks", extracting them into separate CocoaPod libraries, and then rebuilding the app by linking the bricks together through the Podfile. Key steps include identifying app domains to extract, separating each domain into its own pod, and then reconstructing the main app through CocoaPods dependencies. The benefits of this approach include modularity, reusability, and the ability to develop components independently through their own projects and tests.
This document discusses strategies for migrating code from Swift 2.x to Swift 3.0. It recommends first migrating dependencies using tools like CocoaPods and Carthage. It then recommends using Xcode's migration assistant to fix issues, while also preparing code templates beforehand using tools like SwiftGen. Some challenges discussed include changes made automatically by the migrator, optional comparators being removed, and Grand Central Dispatch API changes. References for further information on the Swift 3 migration are provided.
This document discusses using BitTorrent on iOS. It provides an overview of BitTorrent, including its history, usage statistics, and technical details. It then discusses challenges with using BitTorrent on iOS and potential solutions, including using the libtorrent C++ library. It covers how to build and configure libtorrent for iOS, and how to interface it with Swift. It also describes how to implement an event loop to fetch torrent updates and progress. Some caveats mentioned are the need for fine-tuning to avoid heavy battery usage and lack of background session support on iOS.
3. Les contraintes du Offline
● Lire des vidéos quand j’ai pas de réseau
● Pouvoir profiter du Streaming pendant le téléchargement
● Deux systèmes de lecture différents
4. Le MP4
● Fichiers lourds
● Reprise de téléchargement
● Double consommation de datas
5. Les chunks
● Découpage côté serveur
● Assemblage côté mobile
● Double consommation de data
6. HLS
● Créé en Mai 2009 par Apple
● HLS = HTTP Live Streaming
● Liste fichiers (ts) dans fichier playlist (m3u8)