CocoaHeads Rennes #7 : Intégration continue pour les nulsCocoaHeadsRNS
Screencast de la présentation du 16 février 2011 aux Cocoaheads Rennes.
« Mais je comprends pas, ça marchait avant, ça ne marche plus ! ». Qui n’a jamais prononcé cette phrase au cours d’un projet ? Pourtant, la solution existe : l’intégration continue. Cette méthode consiste, entre autre, à vérifier l’intégrité d’un projet à chaque modification. Et ceci, de façon automatique. L’intégration continue pourrait sonner le glas du principe de régression et garantir la qualité de vos réalisations.
Cette présentation a été assurée par Jérémy Toudic (développeur mobilité, SII Rennes) et Gaël Durand (référent technique sur les technologies mobiles au sein de SII Rennes). Gaël est aussi l’auteur de « Objective-C Créez vos applications iPhone et iPad » et enseigne à l’université.
Vidéo sur la session sur Vimeo: http://vimeo.com/37104049
Slides de la présentation iBeacon pour la session CocoaHeads Toulouse du 30 janvier 2014.
Certains slides ont des infos complémentaires dans les notes de présentation, ne pas hésiter à télécharger pour les voir.
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
Nous avons pour volonté de donner la parole à des créateurs d'applications et nous sommes donc ravis d'accueillir ce mois-ci le créateur de Paw. Pour ceux qui ne connaissent pas encore, c'est l'outil indispensable pour tester, spécifier et vérifier des webservices. Micha Mazaheri viendra nous expliquer comment JavaScript Core Framework a permit à Paw de passer d'une petite app à un outil extensible.
CocoaHeads Rennes #7 : Intégration continue pour les nulsCocoaHeadsRNS
Screencast de la présentation du 16 février 2011 aux Cocoaheads Rennes.
« Mais je comprends pas, ça marchait avant, ça ne marche plus ! ». Qui n’a jamais prononcé cette phrase au cours d’un projet ? Pourtant, la solution existe : l’intégration continue. Cette méthode consiste, entre autre, à vérifier l’intégrité d’un projet à chaque modification. Et ceci, de façon automatique. L’intégration continue pourrait sonner le glas du principe de régression et garantir la qualité de vos réalisations.
Cette présentation a été assurée par Jérémy Toudic (développeur mobilité, SII Rennes) et Gaël Durand (référent technique sur les technologies mobiles au sein de SII Rennes). Gaël est aussi l’auteur de « Objective-C Créez vos applications iPhone et iPad » et enseigne à l’université.
Vidéo sur la session sur Vimeo: http://vimeo.com/37104049
Slides de la présentation iBeacon pour la session CocoaHeads Toulouse du 30 janvier 2014.
Certains slides ont des infos complémentaires dans les notes de présentation, ne pas hésiter à télécharger pour les voir.
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
Nous avons pour volonté de donner la parole à des créateurs d'applications et nous sommes donc ravis d'accueillir ce mois-ci le créateur de Paw. Pour ceux qui ne connaissent pas encore, c'est l'outil indispensable pour tester, spécifier et vérifier des webservices. Micha Mazaheri viendra nous expliquer comment JavaScript Core Framework a permit à Paw de passer d'une petite app à un outil extensible.
Conception applications 3 écrans sur Windows 8/WP8/Xbox 360Microsoft
Le nombre de type de périphérique se multipliant, vous êtes amené à développer votre application plusieurs fois. Utilisez cet écosystème pour ajouter des fonctionnalités à vos applications. Cette session présente la réalisation d’un prototype d’application video multi écran Xbox / Windows 8 / Windows Phone 8 utilisant Player Framework.
Slides de la présentation "iOS & Android" de la session des CocoaHeads Rennais du 10 novembre 2011. Présentation assurée par David Bonnet et Nicolas Klein.
L’environnement du développement mobile iOS & AndroidChris Saez
Presentation breve sur l'univers du développement logiciel sur iOS et Android avec état des lieux de la plateform, des editeurs de texte associés et des contraintes liées a ces plateformes.
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 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 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 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.
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 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.
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.
Conception applications 3 écrans sur Windows 8/WP8/Xbox 360Microsoft
Le nombre de type de périphérique se multipliant, vous êtes amené à développer votre application plusieurs fois. Utilisez cet écosystème pour ajouter des fonctionnalités à vos applications. Cette session présente la réalisation d’un prototype d’application video multi écran Xbox / Windows 8 / Windows Phone 8 utilisant Player Framework.
Slides de la présentation "iOS & Android" de la session des CocoaHeads Rennais du 10 novembre 2011. Présentation assurée par David Bonnet et Nicolas Klein.
L’environnement du développement mobile iOS & AndroidChris Saez
Presentation breve sur l'univers du développement logiciel sur iOS et Android avec état des lieux de la plateform, des editeurs de texte associés et des contraintes liées a ces plateformes.
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 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 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 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.
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 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.
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 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 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.
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 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,
Durcissement de code - Pourquoi durcir son code ? Quand le faire ? Comment s’y prendre ?
Cyrille Grandval & Maxence Perrin répondent à ces problématiques que se posent de nombreux acteurs du Web lors de la conférence d'ouverture de la 1ère édition du WebDay ESGI.
Vous connaissiez Windows Mobile ? Vous avez aimé Windows Phone 7, découvrez comment Windows Phone 8 aborde le thème de la sécurité et quels sont les éléments à connaitre pour estimer le périmètre de risques liés à ces usages mobiles.
Speakers : Jugoslav STEVIC (Microsoft France), Thierry Picq (Microsoft France), Jean-Yves Grasset (Microsoft)
Vous connaissiez Windows Mobile ? Vous avez aimé Windows Phone 7, découvrez comment Windows Phone 8 aborde le thème de la sécurité et quels sont les éléments à connaitre pour estimer le périmètre de risques liés à ces usages mobiles.
Speakers : Jugoslav STEVIC (Microsoft France), Thierry Picq (Microsoft France), Jean-Yves Grasset (Microsoft)
Les principales failles de sécurité des applications Web actuellesXavier Kress
Les principales failles de sécurité des applications Web actuelles telles que recensées par l'OWASP. Principes, parades et bonnes pratiques de développement.
Ce document, élaboré dans le cadre d'une présentation faite au CNAM, traite de l’importance de la sécurité applicative (les applications Web sont devenues omniprésentes, objectifs et conséquences d’une attaque, les hackers et les kits d’attaque, l'OWASP et les kits de défense), des principales failles de sécurité applicatives (principe et exemples de fonctionnement, objectifs / conséquences, parades) et des bonnes pratiques permettant de sécuriser un parc applicatif (sensibiliser les développeurs, effectuer des tests d’intrusion et de la revue de code, intégrer la sécurité dans la gestion de projets)
Alternative - Complément au Tramway et 3ème lien de la ville de Québec Daniel Bedard
An update of this presentation has been done with Slide 16 that has been updated and 17 has been added, only.
Cette présentation a été ajournée avec la diapo 16 qui a été modifié et la 17 qui a été ajouté.
Voir ici
https://www.slideshare.net/slideshow/alternative-au-tramway-de-la-ville-de-quebec-rev1-sum-pdf/269691794
CDPQ Infra dévoile un plan de mobilité de 15 G$ sur 15 ans pour la région de Québec. Une alternative plus économique et rapide, ne serait-elle pas posssible?
- Valoriser les infrastructures ferroviaires du CN, en créant un Réseau Express Métropolitain (REM) plutôt qu'un nouveau tramway ou une combinaison des 2.
- Optimiser l'utilisation des rails pour un transport combiné des marchandises et des personnes, en accordant une priorité aux déplacements des personnes aux heures de pointes.
- Intégrer un téléphérique transrives comme 3ème lien urbain dédiés aux piétons et cyclistes avec correspondance avec le REM.
- Le 3 ème lien routier est repensé en intégrant un tunnel routier qui se prolonge avec le nouveau pont de l'Île d'Orléans et quelques réaménagemet de ses chausées.
https://www.linkedin.com/in/bedarddaniel/
English:
CDPQ Infra unveils a $15 billion, 15-year mobility plan for the Quebec region. Wouldn't a more economical and faster alternative be possible?
Leverage CN's railway infrastructure by creating a Metropolitan Express Network (REM) instead of a new tramway or a combination of both.
Optimize the use of rails for combined freight and passenger transport, giving priority to passenger travel during peak hours.
Integrate a cross-river cable car as a third urban link dedicated to pedestrians and cyclists, with connections to the REM.
Rethink the third road link by integrating a road tunnel that extends with the new Île d'Orléans bridge and some reconfiguration of its lanes.
https://www.linkedin.com/in/bedarddaniel/
3. la sécurité sur iOS
sommaire
1. enjeux de la sécurité
2. organismes
3. top 10 OWASP Mobile 2017
4. sécurité au cœur du projet
5. conclusion
4. la sécurité sur iOS
enjeux de la sécurité – c’est quoi ?
la sécurité informatique, c’est quoi ?
confidentialité : éviter les intrusions
intégrité : protéger contre les données modifiées
disponibilité : garantir le fonctionnement contre les pannes
quoi d’autre?
traçabilité : toute action est tracée
authentification : l’utilisateur est identifié
non-répudiation et imputation : non contestation des actions d’un
utilisateur
5. la sécurité sur iOS
enjeux de la sécurité – pourquoi ?
Dommages financiers
directs : Rétablir le parc de machine, réécrire l’application,
etc…
indirects :Vol de secret industriel, perte de marchés
Image de marque
directe : Publicité négative sur l’insuffisance de la sécurité
indirecte : Perte de la confiance du public
6. la sécurité sur iOS
enjeux de la sécurité
A qui faire confiance ?
7. la sécurité sur iOS
organismes
ANSSI : Agence Nationale de la Sécurité des Systèmes d‘Information
• Création le 7 juillet 2009
• Rattachée au Secrétaire général de la défense et de la sécurité nationale
• L'agence assure la mission d'autorité nationale en
matière de sécurité des systèmes d'information
• Guides et recommandations
• Formation à la sécurité
http://www.ssi.gouv.fr
8. la sécurité sur iOS
organismes
MITRE : Massachusetts Institute ofTechnology Research & Engineering
• Entreprise à but non lucratif
• Création en 1958
• Sponsorisé par le département de la défense américain
• Centralise les CVEs
• Développe le format de rapport OVAL
• Formation à la sécurité
https://cve.mitre.org/
9. la sécurité sur iOS
organismes
OWASP : OpenWeb Application Security Project
• Entreprise à but non lucratif
• Création le 9 septembre 2001
• Communauté de développeurs diffusant les bonnes pratiques de sécurité pour les
applications web
• Connu pour leTop 10 des failles (mobile, web, …)
• WebGoat, WebScarab, XSS Filter, ...
• Domaine étendu au développement mobile
https://www.owasp.org
10. la sécurité sur iOS
top 10 OWASP
M1 – Mauvaise usage de la
plateforme
M2 – Stockage de données non
sécurisées
M3 – Communication non sécurisé
M4 – Authentification non
sécurisée
M5 – Casse cryptographique M6 – Autorisations non sécurisées
M7 – Qualité du code client M8 – Code tampering M9 – Reverse engineering
M10 – Fonctionnalités non
nécessaires
12. la sécurité sur iOS
architecture du projet
Prendre en compte les problématiques de sécurité dès le lancement d’un projet
• ISO 27001 ou EBIOS
• identifier les vulnérabilités
• identifier les responsables sécurité
• prendre en compte les recommandations
• programmer un audit
13. la sécurité sur iOS
respect des règles de Secure-Coding
Connaître les règles de secure-coding inhérent au projet à réaliser
• Guide du secure coding sur iOS/Mac OSX d'Apple
• Guide du secure coding iOS de l'Infosec Institute
• OWASP
• Mettre en place des outils d’analyse automatique
• Faire de la revue de code
14. la sécurité sur iOS
outils d’Intégration Continue
Définir les outils en fonction des développements, par exemple :
• SonarQube
• dependency-check d’OWASP (Java, .Net, Ruby, PHP et NodeJS)
• Lint (C), SwiftLint (Swift) JavaScriptLint (JavaScript)
• Clang (C/C++/Objective-C)
• Klockwork (C/C++, Java), utilisé surtout dans l’industriel
NB :
Aucun outil ne garantit 100% de couverture
Difficulté de combiner un ensemble d’outils
15. la sécurité sur iOS
tests de pénétration
Coût important car difficilement automatisable
Nécessite une expertise en sécurité et
divers technologies
Kali Linux, anciennement BackTrack
16. la sécurité sur iOS
tests de pénétration
Possibilités d’automatisation :
• Injection SQL
• Données réseau en clair (ex: données client en HTTP)
• Détection partielle XSS
Exemples de tests de pénétration :
• Déchiffrer des données dans un mobile
• Corrompre une application web
• Récupérer des données clients
17. la sécurité sur iOS
conclusion
anticiper les coûts associés
adapter la sécurité en fonction du type de projet
formation / auto-formation sur le Secure-Coding
mise en place d’outils automatisés
20. la sécurité sur iOS
sommaire
1. enjeux de la sécurité
2. organismes
3. top 10 OWASP Mobile 2017
4. sécurité au cœur du projet
5. conclusion
danke schön
grazie
Thank you
merci
shukrānmerci
ta
gracias