Skip to content
Sale

Maxime Britto – Créer des apps pour iPhone et iPad

Original price was: $79.00.Current price is: $25.20.

Vous voulez être guidé de A à Z et comprendre ce que vous faites pour créer vos propres applications iPhone/iPad. Et vous voulez probablement des conseils précis sur les techniques et les outils utilisés tous les jours par les développeurs iOS.

Description

Unlock your potential with the Unlock your potential with the Maxime Britto – Créer des apps pour iPhone et iPadMaxime Britto – Créer des apps pour iPhone et iPad course for only course for only Original price was: $79.00.Original price was: $79.00.Current price is: $25.20.Current price is: $25.20. at at Giolib.comGiolib.com! Explore our comprehensive library of over 60,000 downloadable digital courses across various ! Explore our comprehensive library of over 60,000 downloadable digital courses across various Business & SalesBusiness & Sales. Get expert-led, self-paced learning at up to 80% savings. Elevate your skills today!. Get expert-led, self-paced learning at up to 80% savings. Elevate your skills today!

Maxime Britto - Créer des apps pour iPhone et iPad

Maxime Britto – Créer des apps pour iPhone et iPad

Créer des apps pour iPhone et iPad (iOS 12)

Apprenez le métier de programmeur et publiez votre app sur l’AppStore cette année

Le Le cours en françaiscours en français le plus efficace, pour apprendre à créer des applications iPhone et iPad. le plus efficace, pour apprendre à créer des applications iPhone et iPad.

Vous voulez être Vous voulez être guidé de A à Zguidé de A à Z et et comprendre ce que vous faitescomprendre ce que vous faites pour créer vos propres applications iPhone/iPad. Et vous voulez probablement des pour créer vos propres applications iPhone/iPad. Et vous voulez probablement des conseils précisconseils précis sur les sur les techniquestechniques et les et les outilsoutils utilisés tous les jours par les développeurs iOS. utilisés tous les jours par les développeurs iOS.

Je vous ai préparé un cours dans lequel Je vous ai préparé un cours dans lequel je vous explique tout ce que vous devez savoirje vous explique tout ce que vous devez savoir, , pas à paspas à pas. Chaque manipulation que je réalise est systématiquement expliquée et très vite vous deviendrez aussi à l’aise avec le Swift que les 3000 étudiants qui m’ont déjà fait confiance.. Chaque manipulation que je réalise est systématiquement expliquée et très vite vous deviendrez aussi à l’aise avec le Swift que les 3000 étudiants qui m’ont déjà fait confiance.

Ce cours a été conçu pour iOS 11 et ensuite mis à jour pour iOS 12. Vous aurez donc accès à du contenu à jour, accessible et sans aucune publicité, pour apprendre dans les meilleures conditions.Ce cours a été conçu pour iOS 11 et ensuite mis à jour pour iOS 12. Vous aurez donc accès à du contenu à jour, accessible et sans aucune publicité, pour apprendre dans les meilleures conditions.

Débutants acceptés. À bras ouverts.Débutants acceptés. À bras ouverts.

Vous n’avez jamais programmé ? Le mot algorithme vous fait peur ? Tout est prévu pour que non seulement vous y arriviez, mais que vous preniez du plaisir tout au long du cours…et pour le reste de votre vie 🙂Vous n’avez jamais programmé ? Le mot algorithme vous fait peur ? Tout est prévu pour que non seulement vous y arriviez, mais que vous preniez du plaisir tout au long du cours…et pour le reste de votre vie 🙂

Durant la préparation je me suis appuyé sur mes Durant la préparation je me suis appuyé sur mes 10 ans de développement iOS10 ans de développement iOS et et 8 ans d’enseignement de la programmation8 ans d’enseignement de la programmation en école d’ingénieur pour qu’il soit adapté, fun et progressif. en école d’ingénieur pour qu’il soit adapté, fun et progressif.

Le principe consiste à alterner quelques Le principe consiste à alterner quelques chapitres théoriques courtschapitres théoriques courts avec avec beaucoup de pratiquebeaucoup de pratique et de l’ et de l’apprentissage par projetapprentissage par projet..

Reconversion. Nouvel élan.Reconversion. Nouvel élan.

Vous savez déjà programmer mais vous ne connaissez rien à iOS ni au Swift ? En tant que développeur je sais que la découverte d’une nouvelle plateforme peut paraître impressionante. Avec ce cours il vous faudra tout juste quelques semaines pour devenir efficace et créer de superbes apps.Vous savez déjà programmer mais vous ne connaissez rien à iOS ni au Swift ? En tant que développeur je sais que la découverte d’une nouvelle plateforme peut paraître impressionante. Avec ce cours il vous faudra tout juste quelques semaines pour devenir efficace et créer de superbes apps.

Prêt pour iOS 12 et XCode 10Prêt pour iOS 12 et XCode 10

Plusieurs vidéos ont déjà été refaites pour couvrir les modifications qu’Apple a apporté à iOS 12 et surtout à XCode 10.Plusieurs vidéos ont déjà été refaites pour couvrir les modifications qu’Apple a apporté à iOS 12 et surtout à XCode 10.

En vous inscrivant à ce cours, vous êtes parés pour l’avenir 😉En vous inscrivant à ce cours, vous êtes parés pour l’avenir 😉

MacGMacG
Une formation solide à destination de tous ceux qui veulent débuter en développementUne formation solide à destination de tous ceux qui veulent débuter en développement

Mac4EverMac4Ever
Ces cours sont d’une très grande qualité, notamment grâce à une expertise de longue date chez Areva, LinkedIn et même Apple à Cupertino.Ces cours sont d’une très grande qualité, notamment grâce à une expertise de longue date chez Areva, LinkedIn et même Apple à Cupertino.

Slice42Slice42
L’ensemble est très didactique, avec l’accent chantant de Maxime qui vient relever la sauceL’ensemble est très didactique, avec l’accent chantant de Maxime qui vient relever la sauce

Votre formateur

Maxime Britto

Maxime BrittoMaxime Britto

Maxime est un enseignant devenu ingénieur en informatique, spécialisé dans les technologies du web et du mobile. Cette nouvelle carrière lui a permis de travailler chez Areva, LinkedIn et même Apple à Cupertino.
A son retour des états unis il se spécialise dans la création d’applications pour iOS et Android et crée plusieurs dizaines de solutions mobiles pour des entreprises ou des collectivités. A son retour des états unis il se spécialise dans la création d’applications pour iOS et Android et crée plusieurs dizaines de solutions mobiles pour des entreprises ou des collectivités.
En parallèle de son entreprise, il retrouve régulièrement les bancs de l’école dans laquelle il a fait ses études pour y former les futurs ingénieurs au monde du développement. En parallèle de son entreprise, il retrouve régulièrement les bancs de l’école dans laquelle il a fait ses études pour y former les futurs ingénieurs au monde du développement.

““Durant la préparation je me suis appuyé sur mes 12 ans de développement et 10 ans d’enseignement de la programmation en école d’ingénieur pour qu’il soit adapté, fun et progressif.Durant la préparation je me suis appuyé sur mes 12 ans de développement et 10 ans d’enseignement de la programmation en école d’ingénieur pour qu’il soit adapté, fun et progressif.” – Maxime” – Maxime

Plan du cours

Créer des apps pour iPhone et iPad (iOS 12)Créer des apps pour iPhone et iPad (iOS 12)
Introduction Introduction

Avant de visionner ce coursAvant de visionner ce cours

XCode 10, iOS 12 VS XCode 11, iOS 13XCode 10, iOS 12 VS XCode 11, iOS 13

Le forum (2:01)Le forum (2:01)

Les bonus et réductions (1:26)Les bonus et réductions (1:26)

Certificat de complétion (3:04)Certificat de complétion (3:04)

Obtenir les codes sources (4:00)Obtenir les codes sources (4:00)

1.1 − Préparer ses outils pour iOS et Swift1.1 − Préparer ses outils pour iOS et Swift

XCode : Téléchargement alternatif (2:28)XCode : Téléchargement alternatif (2:28)

XCode : navigation et prise en main (5:08)XCode : navigation et prise en main (5:08)

1.2 − Conception d’interface graphique1.2 − Conception d’interface graphique

Découverte du Storyboard et de Interface Builder (4:52)Découverte du Storyboard et de Interface Builder (4:52)

Gestion des images et ressources (5:04)Gestion des images et ressources (5:04)

Première interface graphique (2:57)Première interface graphique (2:57)

Lancer son app sur le simulateur (4:15)Lancer son app sur le simulateur (4:15)

1.3 − L’interactivité : donner vie à son app1.3 − L’interactivité : donner vie à son app

Le contrôleur en Swift (3:11)Le contrôleur en Swift (3:11)

Les Playgrounds sur Mac et iPad (4:29)Les Playgrounds sur Mac et iPad (4:29)

Le fil d’exécution (5:55)Le fil d’exécution (5:55)

Les variables – partie 1 (8:06)Les variables – partie 1 (8:06)

Les variables – partie 2 (4:54)Les variables – partie 2 (4:54)

Les constantes (3:30)Les constantes (3:30)

Les chaînes de caractères (5:48)Les chaînes de caractères (5:48)

Les conditions – partie 1 (5:09)Les conditions – partie 1 (5:09)

Les conditions – partie 2 (12:23)Les conditions – partie 2 (12:23)

Les fonctions – partie 1 (4:15)Les fonctions – partie 1 (4:15)

Les fonctions – partie 2 (9:10)Les fonctions – partie 2 (9:10)

Les classes (7:15)Les classes (7:15)

1.4 − Lier son interface graphique avec son code en Swift1.4 − Lier son interface graphique avec son code en Swift

Boutons et actions (7:00)Boutons et actions (7:00)

Objets graphiques et outlets (5:51)Objets graphiques et outlets (5:51)

Finaliser notre première app (3:49)Finaliser notre première app (3:49)

Actions et Outlets : erreurs courantes (6:28)Actions et Outlets : erreurs courantes (6:28)

2 − Objectif : Calculatrice2 − Objectif : Calculatrice

Présentation de l’objectif à atteindre (2:42)Présentation de l’objectif à atteindre (2:42)

Création du projet dans XCode (1:49)Création du projet dans XCode (1:49)

Conception de l’interface utilisateur (5:25)Conception de l’interface utilisateur (5:25)

Connexion des Outlets et Actions (6:32)Connexion des Outlets et Actions (6:32)

Les nombres ayant plusieurs chiffres (4:45)Les nombres ayant plusieurs chiffres (4:45)

Edition du nombre en cours (2:59)Edition du nombre en cours (2:59)

Effectuer les opérations – partie 1 (3:52)Effectuer les opérations – partie 1 (3:52)

Effectuer les opérations – partie 2 (5:16)Effectuer les opérations – partie 2 (5:16)

Les finitions (6:37)Les finitions (6:37)

3.1 − Objectif : Partage sur les réseaux sociaux3.1 − Objectif : Partage sur les réseaux sociaux

Objectif et plan (1:29)Objectif et plan (1:29)

Library vs Framework vs SDK (2:21)Library vs Framework vs SDK (2:21)

Le Framework UIKit (1:35)Le Framework UIKit (1:35)

Les principaux Frameworks (2:04)Les principaux Frameworks (2:04)

3.2 − Notions de Swift3.2 − Notions de Swift

Les Tableaux (5:40)Les Tableaux (5:40)

Classes et objets (5:31)Classes et objets (5:31)

Les fonctions des objets (5:39)Les fonctions des objets (5:39)

3.3 − UIKit3.3 − UIKit

UILabel (3:47)UILabel (3:47)

UIButton (3:06)UIButton (3:06)

UITextView (2:10)UITextView (2:10)

Partage de données avec UIActivityViewController (8:34)Partage de données avec UIActivityViewController (8:34)

3.4 − Auto-Layout3.4 − Auto-Layout

Placement des vues (6:02)Placement des vues (6:02)

Principes de AutoLayout (6:09)Principes de AutoLayout (6:09)

Contraintes de taille (5:43)Contraintes de taille (5:43)

Contraintes de placement (3:57)Contraintes de placement (3:57)

Contraintes relatives aux autres vues (3:35)Contraintes relatives aux autres vues (3:35)

Prévisualisation et rendu effectif (4:18)Prévisualisation et rendu effectif (4:18)

Résoudre une ambiguité (2:00)Résoudre une ambiguité (2:00)

Résoudre une contradiction (3:49)Résoudre une contradiction (3:49)

3.5 − APP : ShareMe3.5 − APP : ShareMe

Présentation de l’app (2:07)Présentation de l’app (2:07)

Création du projet et écran de chargement (4:34)Création du projet et écran de chargement (4:34)

Création de l’IHM (8:24)Création de l’IHM (8:24)

Connexion des outlets et actions (1:54)Connexion des outlets et actions (1:54)

Application fonctionnelle (3:22)Application fonctionnelle (3:22)

Finalisation (5:50)Finalisation (5:50)

4.1 − Objectif : Optionnels et delegation4.1 − Objectif : Optionnels et delegation

Objectif et plan (0:56)Objectif et plan (0:56)

4.2 − UIKit4.2 − UIKit

UITextField (5:43)UITextField (5:43)

UISegmentedControl (4:05)UISegmentedControl (4:05)

4.3 − Notions de Swift4.3 − Notions de Swift

Les Optionnels (6:44)Les Optionnels (6:44)

Déballer les optionnels (3:50)Déballer les optionnels (3:50)

Simplifier le déballage des optionnels (4:37)Simplifier le déballage des optionnels (4:37)

switch…case (6:08)switch…case (6:08)

Types de variables et conversions (5:27)Types de variables et conversions (5:27)

4.4 − Foundation4.4 − Foundation

Présentation de Foundation (1:39)Présentation de Foundation (1:39)

Système de conversion des unités (4:24)Système de conversion des unités (4:24)

Utilisation du système de conversion (3:43)Utilisation du système de conversion (3:43)

4.5 − Auto-Layout4.5 − Auto-Layout

Hugging priority (6:38)Hugging priority (6:38)

Résistance à la compression (3:12)Résistance à la compression (3:12)

UIStackView (3:41)UIStackView (3:41)

4.6 − APP : Convertisseur4.6 − APP : Convertisseur

Présentation de l’app (1:30)Présentation de l’app (1:30)

Création du projet et écran de chargement (3:03)Création du projet et écran de chargement (3:03)

Création de l’IHM (2:34)Création de l’IHM (2:34)

Connexion des outlets et actions (4:12)Connexion des outlets et actions (4:12)

Récupération de la valeur (7:06)Récupération de la valeur (7:06)

Conversion vers l’unité de base (3:09)Conversion vers l’unité de base (3:09)

Conversion vers les unités de destination (4:05)Conversion vers les unités de destination (4:05)

Finitions et amélioration du code (6:19)Finitions et amélioration du code (6:19)

5.1 − Objectif : Afficher des listes graphiques5.1 − Objectif : Afficher des listes graphiques

Objectif et plan (1:42)Objectif et plan (1:42)

5.2 − Notions de Swift5.2 − Notions de Swift

Fonctions et paramètres (5:34)Fonctions et paramètres (5:34)

Délégation et protocoles (4:18)Délégation et protocoles (4:18)

Exemple de délégation (6:04)Exemple de délégation (6:04)

Champs et fonctions privées (6:58)Champs et fonctions privées (6:58)

Initialisation (4:46)Initialisation (4:46)

5.3 − UIKit5.3 − UIKit

UITableView (5:16)UITableView (5:16)

UITableViewCell (5:12)UITableViewCell (5:12)

UITableViewDelegate (6:18)UITableViewDelegate (6:18)

Affichage de notre UITableView (6:25)Affichage de notre UITableView (6:25)

Afficher une liste d’objets (3:03)Afficher une liste d’objets (3:03)

Gérer les sections (6:13)Gérer les sections (6:13)

Supprimer des lignes (7:34)Supprimer des lignes (7:34)

Clavier et champ texte (2:45)Clavier et champ texte (2:45)

5.4 − Foundation5.4 − Foundation

Stockage de données avec UserDefaults (7:15)Stockage de données avec UserDefaults (7:15)

5.5 − APP : LifeGoals5.5 − APP : LifeGoals

Présentation de l’app (1:32)Présentation de l’app (1:32)

Projet et IHM (3:10)Projet et IHM (3:10)

Champ texte et délégation (6:43)Champ texte et délégation (6:43)

Les données du modèle (4:56)Les données du modèle (4:56)

TableView et délégation (3:18)TableView et délégation (3:18)

Ajouter des objectifs (6:34)Ajouter des objectifs (6:34)

Supprimer des objectifs (2:09)Supprimer des objectifs (2:09)

Sauvegarder les données (6:10)Sauvegarder les données (6:10)

6.1 − Objectif : Bases de données6.1 − Objectif : Bases de données

Objectif et plan (1:25)Objectif et plan (1:25)

Multi-écran et organisation du code (4:14)Multi-écran et organisation du code (4:14)

Présentation de CocoaPods (4:40)Présentation de CocoaPods (4:40)

Configurer un projet pour Cocoapods (11:46)Configurer un projet pour Cocoapods (11:46)

6.2 − Notions de Swift6.2 − Notions de Swift

Utiliser guard en début de fonction (5:41)Utiliser guard en début de fonction (5:41)

Propriétés calculées (6:24)Propriétés calculées (6:24)

Héritage : principes (4:04)Héritage : principes (4:04)

Héritage : syntaxe (5:28)Héritage : syntaxe (5:28)

Héritage : redéfinitions (5:37)Héritage : redéfinitions (5:37)

Chainage d’optionnels (6:08)Chainage d’optionnels (6:08)

Gestion des erreurs (7:42)Gestion des erreurs (7:42)

6.3 − UIKit6.3 − UIKit

Créer un autre écran (4:09)Créer un autre écran (4:09)

Présenter un autre écran (2:30)Présenter un autre écran (2:30)

Transférer des données d’un écran à l’autre (8:56)Transférer des données d’un écran à l’autre (8:56)

Gérer le presse-papier (5:29)Gérer le presse-papier (5:29)

UINavigationController (5:10)UINavigationController (5:10)

UINavigationBar (4:47)UINavigationBar (4:47)

Unwind Segue (5:12)Unwind Segue (5:12)

6.4 − Bases de données6.4 − Bases de données

Les types de bases de données (9:14)Les types de bases de données (9:14)

Présentation de Realm (3:36)Présentation de Realm (3:36)

Installer Realm avec Cocoapods (1:35)Installer Realm avec Cocoapods (1:35)

Définition des modèles (3:25)Définition des modèles (3:25)

Ajouter des objets dans la base de données (3:48)Ajouter des objets dans la base de données (3:48)

Modifier et supprimer des objets (2:42)Modifier et supprimer des objets (2:42)

Realm Browser (3:08)Realm Browser (3:08)

Rechercher dans la base de données (3:49)Rechercher dans la base de données (3:49)

6.5 − APP : Safety First6.5 − APP : Safety First

Présentation de l’application (3:00)Présentation de l’application (3:00)

Création du projet et configuration de Cocoapods (2:51)Création du projet et configuration de Cocoapods (2:51)

La classe Credentials (5:13)La classe Credentials (5:13)

Le gestionnaire de Credentials (5:13)Le gestionnaire de Credentials (5:13)

Création d’objet Credential (3:23)Création d’objet Credential (3:23)

Obtenir des objets Credential (2:59)Obtenir des objets Credential (2:59)

Supprimer des objets Credential (2:24)Supprimer des objets Credential (2:24)

Création du CredentialListViewController (5:29)Création du CredentialListViewController (5:29)

Création du EditCredentialViewController (5:54)Création du EditCredentialViewController (5:54)

Connexion des outlets (3:51)Connexion des outlets (3:51)

Afficher l’écran de création (3:31)Afficher l’écran de création (3:31)

Masquer l’écran de création (3:12)Masquer l’écran de création (3:12)

Unwind segue et sauvegarde (4:40)Unwind segue et sauvegarde (4:40)

Affichage de la liste principale (3:46)Affichage de la liste principale (3:46)

Ajout d’élément et rechargement de la table (4:30)Ajout d’élément et rechargement de la table (4:30)

Ecran d’affichage de Credentials (4:41)Ecran d’affichage de Credentials (4:41)

Outlets et code fonctionnel (3:58)Outlets et code fonctionnel (3:58)

Navigation et transfert d’informations (6:40)Navigation et transfert d’informations (6:40)

Gestion du presse-papier (3:21)Gestion du presse-papier (3:21)

Finitions (6:01)Finitions (6:01)

7.1 − Objectif : Téléchargement7.1 − Objectif : Téléchargement

Objectif et plan (1:24)Objectif et plan (1:24)

7.2 − Notions de Swift7.2 − Notions de Swift

Structures et classes (7:45)Structures et classes (7:45)

Variables et fonctions statiques : théorie (4:36)Variables et fonctions statiques : théorie (4:36)

Variables et fonctions statiques en Swift (4:45)Variables et fonctions statiques en Swift (4:45)

Imbriquer les classes et structures (3:10)Imbriquer les classes et structures (3:10)

Singleton (7:21)Singleton (7:21)

Découper une chaîne de caractères en tableau (5:01)Découper une chaîne de caractères en tableau (5:01)

7.3 − UIKit7.3 − UIKit

UIAlertController (5:39)UIAlertController (5:39)

UIAppDelegate : lancement de l’app (2:26)UIAppDelegate : lancement de l’app (2:26)

7.4 − Communiquer avec le web via Alamofire7.4 − Communiquer avec le web via Alamofire

Les requêtes HTTP (5:45)Les requêtes HTTP (5:45)

Présentation de Alamofire (4:46)Présentation de Alamofire (4:46)

Déclencher une requête HTTP (3:34)Déclencher une requête HTTP (3:34)

Traiter le résultat d’une requête HTTP (4:47)Traiter le résultat d’une requête HTTP (4:47)

Exemple concret (4:39)Exemple concret (4:39)

7.5 − APP : Safety First avec téléchargement7.5 − APP : Safety First avec téléchargement

Présentation des améliorations à apporter (1:14)Présentation des améliorations à apporter (1:14)

Présentation et téléchargement (2:09)Présentation et téléchargement (2:09)

SecurityManager et Singleton (5:06)SecurityManager et Singleton (5:06)

Initier le chargement de la liste des mots de passes (2:46)Initier le chargement de la liste des mots de passes (2:46)

Traiter le résultat du téléchargement de la liste (5:10)Traiter le résultat du téléchargement de la liste (5:10)

Analyser un mot de passe dans le SecurityManager (4:22)Analyser un mot de passe dans le SecurityManager (4:22)

Préparation de l’IHM (2:37)Préparation de l’IHM (2:37)

Affichage du bouton d’avertissement en fonction du risque (3:28)Affichage du bouton d’avertissement en fonction du risque (3:28)

Affichage de l’alerte pour en savoir plus sur le risque (4:21)Affichage de l’alerte pour en savoir plus sur le risque (4:21)

8.1 − Objectif : AppStore8.1 − Objectif : AppStore

Préparer l’icône (5:57)Préparer l’icône (5:57)

Présentation (1:33)Présentation (1:33)

8.2 − Publier son app sur l’AppStore8.2 − Publier son app sur l’AppStore

Choisir un identifiant d’app (2:56)Choisir un identifiant d’app (2:56)

Numéro de build et numéro de version (3:24)Numéro de build et numéro de version (3:24)

Préparer une archive IPA dans XCode (4:58)Préparer une archive IPA dans XCode (4:58)

Préparer iTunes Connect (3:25)Préparer iTunes Connect (3:25)

Icône et transparence (4:17)Icône et transparence (4:17)

Confirmer la publication (5:27)Confirmer la publication (5:27)

8.3 − Gérer les évaluations utilisateur8.3 − Gérer les évaluations utilisateur

Présentation et recommandations (5:56)Présentation et recommandations (5:56)

SKStoreReviewController (3:34)SKStoreReviewController (3:34)

Voir et répondre aux évaluations des utilisateurs (2:32)Voir et répondre aux évaluations des utilisateurs (2:32)


Sales Page
Archive Page

Future-proof your knowledge with the Future-proof your knowledge with the Maxime Britto – Créer des apps pour iPhone et iPadMaxime Britto – Créer des apps pour iPhone et iPad course at course at GiOlibGiOlib! Enjoy lifetime access to high-quality digital content, crafted to advance your career and personal development.! Enjoy lifetime access to high-quality digital content, crafted to advance your career and personal development.

  • Lifetime Access:Lifetime Access: Permanent access to all purchased courses. Permanent access to all purchased courses.
  • Smart Savings:Smart Savings: Benefit from prices up to 80% off original course costs. Benefit from prices up to 80% off original course costs.
  • Safe Transactions:Safe Transactions: Process your payments securely. Process your payments securely.
  • Practical Insights:Practical Insights: Gain actionable skills relevant to today's demands. Gain actionable skills relevant to today's demands.
  • Instant Availability:Instant Availability: Begin your course immediately after payment. Begin your course immediately after payment.
  • Flexible Learning:Flexible Learning: Access content effortlessly on any device. Access content effortlessly on any device.

Start expanding your horizons with Start expanding your horizons with GiOlibGiOlib!!

Cart
Back To Top