All Projects → Karumi → iOSBasicTraining

Karumi / iOSBasicTraining

Licence: Apache-2.0 license
Code associated to the first level of our iOS Training.

Programming Languages

swift
15916 projects

Labels

Projects that are alternatives of or similar to iOSBasicTraining

angular
Repository for my tutorial course: Learning AngularJS on LinkedIn Learning and Lynda.com. http://raybo.org/angular
Stars: ✭ 79 (+393.75%)
Mutual labels:  training
training-kentico-k12
Kentico CMS/EMS MVC training website
Stars: ✭ 24 (+50%)
Mutual labels:  training
DDTTX
DDTTX Tabletop Trainings
Stars: ✭ 22 (+37.5%)
Mutual labels:  training
TIWAP
Totally Insecure Web Application Project (TIWAP)
Stars: ✭ 137 (+756.25%)
Mutual labels:  training
stelligent-u
Templates and code for Stelligent U lessons
Stars: ✭ 92 (+475%)
Mutual labels:  training
coffee-and-coding
A resource repo for coffee-and-coding sessions in ONS
Stars: ✭ 18 (+12.5%)
Mutual labels:  training
neutronics-workshop
A workshop covering a range of fusion relevant analysis and simulations with OpenMC, DAGMC, Paramak and other open source fusion neutronics tools
Stars: ✭ 29 (+81.25%)
Mutual labels:  training
postcsslayouts
This is the repository for my course, Building a Responsive Single-Page Design with PostCSS on LinkedIn Learning and Lynda.com.
Stars: ✭ 22 (+37.5%)
Mutual labels:  training
AndroidAnimations
This is the project where we will analyze study and put into practice how to work with animations in Android
Stars: ✭ 22 (+37.5%)
Mutual labels:  training
KataTODOApiClientIOS
TODO API Client Kata for iOS Developers. The main goal is to practice integration testing using Nocilla and Nimble.
Stars: ✭ 20 (+25%)
Mutual labels:  training
KataContactsKotlin
KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development
Stars: ✭ 47 (+193.75%)
Mutual labels:  training
go-learning
My Golang training material for testing smaller Go concepts and ideas.
Stars: ✭ 27 (+68.75%)
Mutual labels:  training
PathView
Simulate the running route of each player on the playground, and can be timed with a stopwatch
Stars: ✭ 5 (-68.75%)
Mutual labels:  training
r intro bc stats
An Introduction to R and RStudio with the tidyverse delivered at BC Stats
Stars: ✭ 31 (+93.75%)
Mutual labels:  training
training-materials
No description or website provided.
Stars: ✭ 47 (+193.75%)
Mutual labels:  training
ansible-traininglab
Dockerized Ansible Training Lab
Stars: ✭ 16 (+0%)
Mutual labels:  training
restful-booker-platform
A SaaS platform used for various test automation training
Stars: ✭ 72 (+350%)
Mutual labels:  training
CodeCoopersLms
As Code Coopers Training (previously known as Virtual Tech Academy), we have launched a LMS for our students. We are open sourcing those LMS projects here one by one for the greater good. Please share and Mark Star if you appreciate it.
Stars: ✭ 18 (+12.5%)
Mutual labels:  training
progressive
This is the repository for my course, Building a Progressive Web App on LinkedIn Learning and Lynda.com.
Stars: ✭ 26 (+62.5%)
Mutual labels:  training
pwa-workshop
Workshop: Turning a regular website into a Progressive Web Application
Stars: ✭ 41 (+156.25%)
Mutual labels:  training

karumilogo iOS Basic Training

Build Status

Code associated to the first level of the Karumi iOS Training.

##Earth 11 Avengers Detector

In Earth 11 the world of super heroes has completely changed. Super heroes are super villans and viceversa. In this earth the Avengers team is now an evil coporation and is not composed by the usual super heroes. The new members of this organization are unknown.

After collaborating with The Flash from Earth 1 Central City Police Departament has noticed that the new Avengers Team members are the one containing the number four in the super hero id. Your mission, if you decide to accept it, is to develop an iOS application to show a list of super heroes obtained from a remote API showing the Avengers badge if the super hero is part of the Earth 11 evil Avengers Team.

As super heroes are now super villans the Cental City Police Departament also requested us a feature to be able to mark a super hero as captured in the detailed screen. Once the super hero has been captured the system will not show information related to the super hero anymore.

##Application mockups

ApplicationScreencast

##Tasks

  • Task 1:

    • Create an empty iOS project from XCode.
    • Configure CocoaPods.
    • Implement part of the domain model abstracting the data source.
    • Write the unit tests needed to cover this functionality. You can use Nimble to implement your matchers.
    • Bonus:
      • Configure Travis-CI as a continous integration system.
      • Configure Swiftlint as checkstyle tool.
      • Change application logo.
      • Change the splash screen xib to use the app logo.
  • Task 2:

    • Implement the Super Hero Detail UIViewController using the XCode interface builder and show some mocked data there.
    • Add a button to the first view controller to connect this view controller with the detail view controller and implement this navigation.
    • Bonus:
      • Read the KIF Framework documentation and sample project.
      • Using the iOS simulator review the accessibility labels configured.
  • Task 3:

    • Implement the Super Heroes UIViewController using a table view.
    • Show some mocked data in the already implemented Super Heroes screen.
    • Connect the super heroes screen with the system you wrote during the task 1.
    • The tests needed to cover this new funtionality will be covered during another exercise.
    • Bonus:
      • Replace your UITableView widget with a UICollectionView.
      • Change the Super Heroes screen to show 3 columns if the device is an iPad and 1 column by default.
      • Write some UI Tests using the UI Test recorder.
  • Task 4:

    • Refactor the already implemented view controllers to use Model View Presenter to develop the application presentation layer.
    • Create all the use cases needed to connect your presentation layer with the already implemented domain.
    • Create a repository to hide the usage of the SuperHeroesAPIClient as data source and be able to add more data sources in the future if needed.
    • Bonus:
  • Task 5:

    • Connect your already implemented domain with the remote API using an already implemented Marvel API Client following the repository pattern.
    • The tests needed to cover this new funtionality will be covered during aother exercise.
    • Bonus:
      • Using Alamofire implement your own Marvel API Client and replace the old one with this one.
      • Write some integration tests using HTTP stubbing with Nocilla
      • Add persistence to the application.
      • Replace the usage of completion handlers with promisses or observables.
  • Extra tasks:

    • Change your Model View Presenter implementation to use Botham UI
    • Add a pull to refresh mechanism.
    • Add an infinite load mechanism and implement pagination.
    • Improve the UX related to the capture a super hero process avoiding the blink effect when a super hero is captured. How can you do this?

License

Copyright 2016 Karumi

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].