GithubHelp home page GithubHelp logo

yarc's Introduction

About

It's a CRUD application that has two main components a YARC_SDK which handles all the "backend" logic and the YARC itself which presents the data in a certain way.

The app itself and its ability to pull posts from Reddit is nothing special it's more a dummy for the infrastructure around it.

This repo should give me a apportunite to work with many infrastrucure tools like CI, Fastlane, XcodeGen ect.

Start the Project

Pull the project and direct to the folder app via Terminal. Use the command line xcodegen generate to create a YARC.xcodeproj.

The Infrastructure

I was curious how to setup up a project which has the ability to scale. It is basically a dummy for everything around the project.

  • YARC_SDK
  • Podfile for SwiftLint and R.swift
  • Fastlane
  • XcodeGen
  • Github Actions

YARC_SDK

Fetches all the data between the Reddit API and the Application, including Error handling. YARC_SDK

Podfile

The Podfile is a specification that describes the dependencies of the targets of one or more Xcode projects. The file should simply be named Podfile PodFile

Swiftlint

A tool to enforce Swift style and conventions, loosely based on the now archived GitHub Swift Style Guide SwiftLint

R.swift

Get strong typed, autocompleted resources like images, fonts and segues in Swift projects R.swift

Fastlane

Fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application. Fastlane

SwiftLint for CI

To run SwiftLint at Github Actions it was required to write a job for Github Actions. It is also necessary to declear in FastFile.swift a function called swiftLineLane.

jobs:
  RunLinter:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v2
      
      - name: Install dependencies
        run: bundle install

      - name: Run linter
        run: bundle exec fastlane swiftLintLane
func swiftLintLane() {
    desc("Run SwiftLint")
    swiftlint(configFile: "app/.swiftlint.yml",
              strict: true,
              ignoreExitStatus: false,
              raiseIfSwiftlintError: true,
              executable: "Pods/SwiftLint/swiftlint")
}

XcodeGen

XcodeGen is a command line tool written in Swift that generates your Xcode project using your folder structure and a project spec. XcodeGen

Github Actions

For CI / CD including the following steps:

  • On pull request to main branch
  • Run SwiftLintLane

yarc's People

Contributors

raaaimund avatar tokko55v2 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

raaaimund

yarc's Issues

create initial profile - searchbar

by starting the app and clicking on Go! the yarc user has the opportunity to create his: her initial profile by choosing the most popular subreddits.

onboarding favorite list

yarc user needs an onboarding process (yarc is the name of the application)

In this issue, the user has to select his subreddits and creates his:her initial profile
yarcs (users of the app) see after the initial profile an overview over all their previews selected subreddits

subreddit main list

yarc user has the option to see all "joined" subreddits

  • impl. as a list
  • having the option to open the subreddit
  • the list should have the following attributes
    • subscriber
    • icon image
    • title

change color scheme

  • RGB: 235 137 33 -> navigationColor, loginview
  • RGB: 245 173 40 -> loginview
  • RGB: 85 100 100 -> Background
  • RGB: 0 0 0 -> Button Color
  • RGB: 255 255 255 -> headerColor, tabColor

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.