Starter project for the iOS code challenge

Overview

iOS Base Project for Podium Take-Home Challenge

Introduction

We have provided two version of this base project: one using UIKit, one using SwiftUI. They are extremely bare-bones, with a simple example of how to interact with the GraphQL endpoint in the viewDidLoad or .onAppear of the main view of the app. You can create your own project if you'd like, but we recommend forking this repository and building on top of one of the provided projects to avoid issues with Apollo.

GraphQL

This base project uses the Apollo-iOS client to interact with GraphQL endpoints. You can read about it in much more detail in their documentation, but here is a brief overview from the documentation of what it is:

Apollo iOS is a strongly-typed, caching GraphQL client for native iOS apps written in Swift.

It allows you to execute queries and mutations against a GraphQL server and returns results as query-specific Swift types. This means you don't have to deal with parsing JSON, or passing around dictionaries and making clients cast values to the right type manually. You also don't have to write model types yourself, because these are generated from the GraphQL definitions your UI uses.

As the generated types are query-specific, you're only able to access data you actually specify as part of a query. If you don't ask for a field in a particular query, you won't be able to access the corresponding property on the returned data structure.

Codegen

As mentioned above, Apollo allows us to generate code based on the queries and mutations we use as defined in .graphql files in the project. We have provided you with a rudimentary example of how to get back a list of movies where the only property on each Movie object is the name. It is called Movies.graphql and looks like this:

query GetMoviesQuery {
  movies {
    title
  }
}

As you work on this take-home challenge, you will need to expand upon this to create your own .graphql files to customize the data available to display in the app. Each time you build the app, Apollo will automatically run the code necessary to generate code from your graphql files. Make sure to build when you make any changes otherwise you won't be able to access those changes in your code.

You can explore more of what is possible with going to the endpoint in a browser or using a GraphQL client by accessing this endpoint: https://podium-fe-challenge-2021.netlify.app/.netlify/functions/graphql and viewing the schema via what is called introspection. For example, if you click on that link, it will open a playground where you can practice using the available queries. On the right side of the screen there are buttons labeled docs and schema. The docs will tell you definitions of the available model. The schema will tell you what queries are available.

Note:

If you change the name of the project, you will need to update the code used in the build script. The specific file you will need to modify is ApolloCodegen/Sources/ApolloCodeGen/main.swift. Both UIKit and SwiftUI apps have the same default name of Movie Challenge.

You might also like...
[Accepted] My WWDC2021 Swift Student Challenge submission chosen as one of the 350 winners!
[Accepted] My WWDC2021 Swift Student Challenge submission chosen as one of the 350 winners!

Genetic Algorithms | ๏ฃฟWWDC21 This project was entirely built with SwiftUI. To direct download this Playground and run it on your Mac or IPad, click he

My Winning Submission for Apple's WWDC 2021 Swift Student Challenge
My Winning Submission for Apple's WWDC 2021 Swift Student Challenge

Symmetries This playground book gives a quick insight into the symmetry groups of 3-dimensional objects like the platonic solids. The user can play ar

๐ŸŽ‰ WWDC 2021 Swift Student Challenge Winner ๐ŸŽ‰ Dance Party allows users to record choreography and play against other users to try and match the key poses!
๐ŸŽ‰ WWDC 2021 Swift Student Challenge Winner ๐ŸŽ‰ Dance Party allows users to record choreography and play against other users to try and match the key poses!

๐Ÿ’ƒ Dance Party ๐Ÿ•บ ๐ŸŽ WWDC 2021 Swift Student Challenge Winner ๐ŸŽ‰ Installation Steps (Works on iPad Only) Clone or Download Unzip the .playgroundbook.z

The Feed API challenge with swift
The Feed API challenge with swift

The Feed API challenge - iOSLeadEssentials.com It's time to put your skills to the test! You are called to implement the RemoteFeedLoader to load a co

US bank coding exercise challenge

USBankcodingexercise US bank coding exercise challenge This repo has two projects Project to demo MVVM design pattern problem statement - read data fr

Flipgrid Challenge
Flipgrid Challenge

FlipgridChallenge Overview The project follows MVVM-FlowViewController architecture that scales nicely as more screens/flows are added. I have added c

Birthdays App Challenge set by Chalkboard

Chalkboard Birthdays App Challange This is an app that utilises a web api to provide the user an ordered list of birthdays youngest to oldest How to i

My winning contribution to Apple's Swift Student Challenge 2021

SynthApp My winning contribution to Apple's Swift Student Challenge 2021 This repository contains an Xcode project and the final Swift Playgrounds fil

Coding challenge for hiring process of Sicredi company
Coding challenge for hiring process of Sicredi company

Coding Challenge of Sicredi Screen Shots

Owner
Podium
Podium
TakeHomeChallenge - iOS Tech Challenge - Take Home Challenge

iOS Tech Challenge - Take Home Challenge Thank you for your interest in taking t

Michael 0 Feb 1, 2022
Challenge-M2Y-TM4 - A challenge provided by Mobile2You, with the purpose of analyzing knowledge about UI, API consumption

Challenge-M2Y-TM4 Um desafio proporcionado pela Mobile2You, com proposito de ana

Felipe Brigagรฃo de Almeida 0 Jan 31, 2022
Code challenge iOS - Movies app

Code challenge iOS - Movies app Project structure The Common folder contains sha

Danny Narvaez 0 Dec 21, 2021
iOS NBA Challenge Based on Xcode 12.4, PR2S Project By: Oscar Pastรกs

iOS NBA Challenge Based on Xcode 12.4, PR2S Project By: Oscar Pastรกs iOS This test app consists of a list of users Considerations This test should be

null 0 Nov 26, 2021
Code Challenge - Using Alamofire is a Swift-based, HTTP networking library, also Codable for Data Model and Combine Framework .

Code Challenge ##Using Alamofire is a Swift-based, HTTP networking library, also Codable for Data Model and Combine Framework . Alamofire is one of th

Eng Angelo Saber 0 Nov 24, 2021
Challenge-vip-delivery - Project for VIP (Clean Swift) Architecture Dev Sprints on Devpass

VIP (Clean Swift) - Delivery App ?? Neste desafio, aplicaremos conceitos da arquitetura VIP para finalizar a implementaรงรฃo de um aplicativo. Desenvolv

Devpass 5 Oct 24, 2022
Challenge-swiftui-space - Project for SwiftUI Dev Sprints on Devpass

SwiftUI Challenge - Space App ?? Neste desafio, desenvolveremos a interface de u

Devpass 7 Dec 27, 2022
Apple Developer Academy @ POSTECH, Afternoon Session 17 team's Mini Challenge Project

?? NatureUp Apple Developer Academy @ POSTECH, Afternoon Session 17 team's MC1 Project ์‚ฌํšŒ๊ฐ€ ๋ฐœ์ „ํ•˜๋ฉฐ ํ™˜๊ฒฝ์ด ํŒŒ๊ดด๋˜๋Š” ์†๋„๊ฐ€ ๊ฐ€์†ํ™”๋˜๊ณ  ๊ทธ ์˜ํ–ฅ์ด ์„œ์„œํžˆ ๋“œ๋Ÿฌ๋‚˜๋ฉฐ, ์‚ฌ๋žŒ๋“ค์˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๋„๋Š” ์ ์ 

๊ฐœ๋ฐœ์ž์•„์นด๋ฐ๋ฏธ_ํฌ์Šคํ… 5 Jul 22, 2022
[Accepted] My WWDC21 Swift Student Challenge submission

My WWDC21 Swift Student Challenge submission I made a playground book that teaches you the basics of ARKit through interactive lessons. It covers posi

Zheng 25 Nov 12, 2022
WWDC2020 Swift Student Challenge - TheHackOfRayTracing playground book

wwdc2021 My wwdc2021 submission The HackOf RayTracing How to run Install swift playground from App Store on your Mac or iPad Double clik TheHackOfRayT

haoboxuxu 20 May 20, 2022