Skip to content

pokeweak/pokemon-weakness-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Header

Pokémon Weakness for iOS

Platform iOS

Swift 2 compatible [![codebeat badge](https://codebeat.co/badges/8d16a43c-e84f-49e7-967e-170f013c4ca9)](https://codebeat.co/projects/github-com-pokeweak-pokemon-weakness-ios) [![License](https://img.shields.io/badge/license-Beerware-red.svg?style=flat)](https://fedoraproject.org/wiki/Licensing/Beerware)

This README provides basic information for some of the most commong tasks you'll have to perform during the development of the app.

Requirements

  • iOS 9.0+
  • Xcode 7.0+

Downloading and installing the project

You'll need a few things before getting started. Make sure you have the latests Xcode installed from the AppStore or Developer Site. Then you can clone the project with the following command:

git clone https://github.com/pokeweak/pokemon-weakness-ios.git

After cloning the project you'll need to install Bundler to manage all the Ruby dependencies on the project for building the project

sudo gem install bundler

After this just execute the following command to install all needed gems

sudo bundle install

Getting started

Now that you've downloaded the project you'll need to run the app, we can run the app using Xcode 7. Make sure to open the Pokemon Weakness.xcworkspace workspace, and not the Pokemon Weakness.xcodeproj project. Currently, the project is compatible with Xcode 7 only, as it's Swift 2.

CocoaPods

CocoaPods is a dependency manager for Objective-C & Swift, which automates and simplifies the process of using 3rd-party libraries in your projects. To learn more about this amazing tool you can check the their docs.

Architecture 🎯

Header

The app is build on top of my understanding of MVP pattern and trying to model the app so it can follow SOLID principles

Connect

All this layers are connected using Promisekit for the asynchronous part and we are married to PromiseKit ¯(ツ)/¯

Dependency injection 💉

Dependency injection has been achieved by using Service Locator pattern with an Assembly that's the one in charge of keeping all the references, I took this approach by using swift extensions of this Assembly so it's easier to link dependencies.

Libraries used in this project

Contact

Twitter

License 🍺

Source is realeased under Beerware license:

As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.