Git Product home page Git Product logo

simplearchitectureexample's Introduction

SimpleArchitectureExample - an iOS Core Skills example

TL;DR:

How to sharpen your skills? Memorize this Core Skills template: App Architecture Template

Overview

Most technical interviews I've had revolve around some core skills:

  • Simple UI
    • TableView
    • Cells
    • Detail View
  • Architecture
    • MVP/MVVM/VIPER
    • Dependency Injection
    • Navigation Coordinator (Router)
  • Model Responsibilities
    • Network
    • Database
    • Mock Web Server
  • Unit Tests
  • Threading
  • Simple RxSwift (BehaviorRelay, Variable, CurrentValueSubject)

In building an application you also need these same types of pieces.

SimpleArchitectureExample is a simple app to review & practice these skills, and place to start from to get building an app quickly with these pieces in place.

How to Use

One of the simplest ways to sharpen your skills is to learn this code by heart:

  • Copy it several times
  • Break it into simple pieces: one or two word comments
  • Rewrite it (from those comments)
  • Study it
  • Adapt it to your favorite architecture and needs.
  • Help each other
  • Talk about what I could have done better
  • Fix my broken tests since I added CoreData Entities ๐Ÿ˜‰

*** Disclaimer: I don't think there is a best way to do things, but I think code separation and organization is important (within reason). This code example is constantly being updated and added to, and is by no means complete. It gives you a strong starting point. Start with good patterns and move to the better and better.***

How to Re-use

If you want to reuse this repo for your own app, there is a simple way to rename the project for to your new app name. This is talked about on stackoverflow

And here are the lines you need to run after you have ack installed.

Search & Replace: NewProjectName With New Name: e.g. CoolMoneyMakingApp

Run commands in terminal:

find . -name 'SimpleArchitectureExample*' -print0 | xargs -0 rename --subst-all 'SimpleArchitectureExample' 'NewProjectName'
find . -name 'SimpleArchitectureExample*'
ack --literal --files-with-matches 'SimpleArchitectureExample' --print0 | xargs -0 sed -i '' 's/SimpleArchitectureExample/NewProjectName/g'
ack --literal 'SimpleArchitectureExample'

Other areas of study

Algorithms

Design Patterns

Design System w/ Declarative UI

simplearchitectureexample's People

Stargazers

vancaem avatar Jessica Lewinter avatar Bassem Tourky avatar Jeans Ruiz avatar Levente Vig avatar Jeffrey Bergier avatar Mustafa avatar Sjoerd Janssen avatar Gubba Manoj kumar avatar Sonny avatar Tim Oliver avatar

Watchers

James Cloos avatar Jon Bott avatar Gubba Manoj kumar avatar

Forkers

musbaalbaki

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.