Swift adventures : Quand je décide de commencer une nouvelle application

Comme vous le savez, j’ai décidé de me mettre à Swift, le nouveau langage de programmation de Cupertino. J’ai commencé à lire l’ebook fournis par les développeurs d’Apple (dispo en anglais sur iTunes & traduis en français par des fans sur le web), j’ai même fait les exos demandés grâce au playground de xCode 6 et j’ai eu une idée : pour m’entrainer, je vais développer ma prochaine application en « swift ».

Alors je vous annonce tout de suite la couleur. Ce sera une application de cuisine : elles sont en vogue en ce moment. Je me suis dis qu’étant réunionnais je pourrais peut-être développer une application de recettes de cuisine réunionnaise. L’application sera très simple. Je compte juste, pour commencer, afficher les recettes en photo dans un UICollectionViewController et une vue détaillée qui tire son contenu d’une API simple que je viens de développer.

Comme vous le savez, ma lubie en ce moment est de ne pas utiliser de Storyboard. La partie du projet que je vais donc vous expliquer est une des plus essentielle.

Une application « Swift » basée sur UITabBarController, UINavigationController et UICollectionViewController

Bon on va faire ça par étape, parce que ça va être lourd. Tout d’abord, créons le UICollectionViewController. Dans la fonction func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?)-> Bool du AppDelegate.swift, écrivez ceci :

var collLayout = UICollectionViewFlowLayout()  
collLayout.itemSize = CGSize(width: 20, height: 20)  
collLayout.scrollDirection = UICollectionViewScrollDirection.Vertical

var collView = UICollectionViewController(collectionViewLayout: collLayout)  

Ce code se divise en deux parties : une où l’on crée et paramètre un layout et l’autre où l’on crée le CollectionView à partir de ce layout.

var homeNav = UINavigationController()  
homeNav.setViewControllers([collView], animated: true)  
homeNav.navigationBar.barTintColor = UIColor.redColor()

var tabBarC = UITabBarController()  
tabBarC.setViewControllers([homeNav], animated: true)  

Ici je créer un NavigationController que je paramètre et auquel je demande de charger ma CollectionView. Ensuite je crée une TabBarController qui se charge d’afficher le controleur de navigation codé plus haut.

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)  
self.window!.rootViewController = tabBarC  

Et enfin on affiche tout ce petit monde à l’écran ! Tout ça pour voir apparaitre une barre de navigation rouge sans titre, une tabBar qui n’affiche pas encore ses items et en prime nous avons un vilain fond noir. Je pense qu’a ce moment, si vous êtes normalement constitué, vous vous dites : « Vive le Storyboard ! ». Mais je vous assure que j’ai de bonnes raisons de croire le contraire.

Bonus : modification des items d’un UITabBarController en Swift

var itemColl: UITabBarItem = self.tabBarC!.tabBar.items[0] as UITabBarItem

itemColl.title = "title"  
itemColl.image = UIImage(named: "icon")  

La seule vraie difficulté ici est qu’il faut penser à bien récupérer l’item dans la tabBar parce qu’il existe déjà et préciser que l’on veut utiliser le array du tableau comme un UITabBarItem.

Voilà ! Vous savez maintenant comment personnaliser votre UITabBarController.

Pour aller plus loin :

Nathanaël Cherrier

Ingenieur de développement mobile et web pour Econocom. Passionné par le développement en général, mais plus particulièrement par le développement web et mobile, je vous raconte mes petits secrets.

Subscribe to Mindsers IT

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!