TakeHomeChallenge - iOS Tech Challenge - Take Home Challenge

Overview

iOS Tech Challenge - Take Home Challenge

Thank you for your interest in taking the iOS Tech Challenge.

Preparation

Please, compile the project in Xcode and run it in your simulator of choice. You will find a working app prototype with 2 screens, accessible via the tab bar. This is the starting point for the challenge.

tech_challenge_images 001

Back in the project, locate the file TransactionModel.swift and have a look at the data model driving the app, the TransactionModel. Some sample transactions can be found in ModelData.swift. These are used to populate the list of transactions you have just seen.

Assignments

General points to consider:

  • follow the specs carefully
  • focus on writing clean, maintainable code
  • write your UI code in SwiftUI, not UIKit

1. Filtering buttons

Add a horizontally scrolling view with buttons for the different categories (shopping, entertainment, food, etc). When the user taps on each of these, the list below should show only the transactions for the selected category. Add a button for all categories as well.

Play the following video to see the feature in action (note: if seeing inside Xcode video may not show fully):

Here are the design specs for the scrolling list of buttons and the buttons themselves:

2. Floating sum view

Add a floating view at the bottom of the list displaying the sum for the transactions belonging to the selected category. The sum should update when the user chooses the different categories.

Play the following video to see the feature in action:

Here are the design specs for the floating view with the sum of the chosen transactions:

tech_challenge_images 003

3. Add a pin/unpin action to each transaction

By tapping on it, the UI should blend/unblend accordingly. The sum in the floating view at the bottom should only consider pinned transactions.

Play the following video to see the feature in action:

Here are the design specs for the unpinned transaction view and the pin/unpin icon:

tech_challenge_images 005

4. Update the chart and list in the insights tab to reflect expense in each category

The insights view should only consider pinned transactions.

tech_challenge_images 007

Make sure that the state between the transactions and the insights tab is kept consistent, as shown in this video capture:

5. Unit tests

Write unit test to verify:

  • filtering of transactions according to category
  • sum of transaction amounts for filtered category

Wrapping up

Once you have completed the assignments, please follow the instructions provided. Please, make sure that your project is complete and it is ready to be compiled and tested using the latest stable version of Xcode.

Good luck!

You might also like...
WWDC2020 Swift Student Challenge - TheHackOfRayTracing playground book
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

[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

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

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

Owner
Michael
Michael
Tech-Career-Growth-iOS - Official iOS app for the Tech Career Growth community

Developing the app Open the project from TCG.xcworkspace, not TCG.xcodeproj. It

Alexander Chiou 10 Feb 10, 2022
PostsExam - A Valhalla take home exam for Mobile App Developer

Posts - iOS A Valhalla take home exam for Mobile App Developer - iOS position Cr

Val Moratalla 0 Mar 24, 2022
LOL Champions app: a small Multi-Module demo application to demonstrate modern iOS application tech-stacks with a Multi-module and MVVM architecture

LOL Champions app: a small Multi-Module demo application to demonstrate modern iOS application tech-stacks with a Multi-module and MVVM architecture

Ahmed Nasser 5 Jun 9, 2022
MemeMe, students will create an app that enables a user to take a picture, and add text at the top and bottom to form a meme

With this first version of MemeMe, students will create an app that enables a user to take a picture, and add text at the top and bottom to form a meme. The user will be able to share the photo on Facebook and Twitter and also by SMS or email.

Marcos 0 Dec 11, 2021
This simple app helps to understand whether customer eligible or not to take a loan.

Loan Agent Description This simple app helps to understand whether customer eligible or not to take a loan. Simplifications Several compromises were n

Andrius 0 Oct 31, 2021
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
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
Starter project for the iOS code challenge

iOS Base Project for Podium Take-Home Challenge Introduction We have provided two version of this base project: one using UIKit, one using SwiftUI. Th

Podium 1 Dec 29, 2021
Code challenge iOS - Movies app

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

Danny Narvaez 0 Dec 21, 2021
[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