Frédéric ADDA
Je développe sur iOS (iPhone / iPad / Watch) depuis 2012, et je suis installé près de Lyon. J'ai une préférence pour les projets en Swift mais je peux également travailler en Objective-C.
J'aime proposer des applications bien construites, respectant les standards de développement d'Apple et au design épuré. Je me soucie de ces petits détails qui font une expérience utilisateur unique. Et j'adore travailler avec des designers et des spécialistes de l'UX.
Je parle Anglais 🇺🇸 (bilingue), Portugais du Brésil 🇧🇷 (pas trop mal), Allemand 🇩🇪 (basique), Hébreu 🇮🇱 (basique aussi) et Japonais 🇯🇵 (de plus en plus). Read More
Portfolio
816150
Lignes de code765
Litres de thé7
Projets clients achevés23
Livres de développement lusCompétences
Je développe principalement en Swift, mais j'ai encore de beaux restes en Objective-C (pour de la maintenance principalement). J'ai une bonne connaissance des outils qui s'articulent autour de Xcode : Git, fastlane, intégration continue, scripts, etc. Enfin, j'ai un goût tout particulier pour les principes de design des applications mobiles.
Swift
Swift est le langage de développement de prédilection sur iOS. Il a été lancé par Apple en 2014.
Objective-C
L'Objective-C est le vénérable langage de programmation utilisé avant Swift. Robuste et efficace.
Git /CI
Github, Gitlab, Bitbucket, Fastlane (accélérateur de déploiement), Bitrise (intégration continue)
UI/UX
Mon goût pour l'ergonomie et l'interface utilisateur facilite la collaboration avec les designers.
Taux journalier Moyen
450 EUR H.T. / jour, négociable en fonction de la durée de la mission
Articles techniques
Codable protocol in Swift 4 + extension
When Swift 4 went out and we finally had a chance to play with it in a playground, I began reading this article on Ray Wenderlich’s site : https://www.raywenderlich.com/163857/whats-new-swift-4 I was particularly interested in this part about the new Codable protocol :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// MARK: - Codable struct CuriosityLog: Codable { enum Discovery: String, Codable { case rock, water, martian } var sol: Int var discoveries: [Discovery] } // Create a log entry for Mars sol 42 let logSol42 = CuriosityLog(sol: 42, discoveries: [.rock, .water, .rock, .rock]) let jsonEncoder = JSONEncoder() // One currently available encoder // Encode the data let jsonData = try jsonEncoder.encode(logSol42) // Create a string from the data let jsonString = String(data: jsonData, encoding: .utf8) // "{"sol":42,"discoveries":["rock","water","rock","rock"]}" let jsonDecoder = JSONDecoder() // Pair decoder to JSONEncoder // Attempt to decode the data to a CuriosityLog object let jsonBackData = (jsonString!.data(using: .utf8))! let decodedLog = try jsonDecoder.decode(CuriosityLog.self, from: jsonBackData) decodedLog.sol // 42 decodedLog.discoveries // [rock, water, rock, rock] |
As you can see, it’s a pretty interesting (and simple) way […]
A concrete example of the « guard » statement in Swift 2
Background A lot of my recent project involve functions with completion handlers returning either an error, or an (optional) object. That’s the case for most of CloudKit functions. Example:
1 |
func performQuery(query: CKQuery, inZoneWithID zoneID: CKRecordZoneID?, completionHandler: ([CKRecord]?, NSError?) -> Void) |
Or MapKit :
1 2 3 4 |
func reverseGeocodeLocation(location: CLLocation, completionHandler: CLGeocodeCompletionHandler) // with CLGeoCodeCompletionHandler defined like so: typealias CLGeocodeCompletionHandler = ([CLPlacemark]?, NSError?) -> Void |
I’m still learning the new error handling in Swift 2, so I don’t know if these completionHandlers returning NSError? still have a future. […]
Structure your UITableView better with structs and enums in Swift
9In this post, I present a technique I use a lot when building a UITableViewController in Swift, but which I haven’t seen used by many other people very often. Background This technique was inspired by this years’s edition of the legendary Stanford CS193p on iTunes U (presented by the just as legendary Paul Hegarty) : iTunes U – […]