An Xcode12 project for iOS that asynchronously downloads and displays xkcd comics

Overview

AsyncXKCD

An Xcode12 project for iOS that asynchronously downloads and displays xkcd comics images and captions. It fills a UITableView as needed to keep the UI responsive while dowloads happen on a different thread. This project was created in Wright State University CS-3170 "Mobile Apps" on Nov. 5, 2021 as a demonstration of the following Cocoa Touch features:

  • URLSession
  • URLSession data tasks
  • Asynchronous UITableView content updating
  • JSONDecoder
  • DispatchQueue
  • A design pattern for exclusively updating shared data on the main thread to avoid data corruption
  • NotificationCenter and Notification to decouple posters and observers a.k.a. publishers and subscribers

This is an almost minimal example. It was created in one class session including time spent discussing the myriad ways shared dat may become corrupted and the dangers of rolling your own concurrency design using mutex loks or similer. The TL;DR is "Use the frameworks that do those things for you".

Screen Shot

You might also like...
Storm: iOS home task project
Storm: iOS home task project

iOS home task project About this repository This repository contains brand new iOS project with Storyboards removed and ready to write the UI programa

Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development
Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development

Hello World iOS App App Description Prework Project for CodePath Intro to Mobile

CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath
CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath

CodePath iOS Prework App Description This app has an input field, text, and seve

A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI
A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI

A project to practice the Platzi course, Curso de Desarrollo de Aplicaciones iOS con SwiftUI

Project Based IOS/Swift study_fast campus lecture
Project Based IOS/Swift study_fast campus lecture

Project Based IOS/Swift study_fast campus lecture

PlayCover - a project that allows you to sideload iOS apps on macOS
PlayCover - a project that allows you to sideload iOS apps on macOS

PlayCover - a project that allows you to sideload iOS apps on macOS

Demo project to sync color changes to an Raspberry Pi Mood Light via iOS/Android
Demo project to sync color changes to an Raspberry Pi Mood Light via iOS/Android

Raspberry Pi Mood Light Demo project to remotely control an Raspberry Pi Mood Light over Bluetooth via iOS and Android. 📺 Watch the video Overview In

A Swift command line tool for generating your Xcode project
A Swift command line tool for generating your Xcode project

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

This project is a minimalistic Pomodoro timer for OS X written in Swift
This project is a minimalistic Pomodoro timer for OS X written in Swift

Minimalistic Pomodoro for OSX This project is a minimalistic Pomodoro timer for OS X written in Swift started by @bengsfort, and substantially enhance

Owner
Erik M. Buck
Author: "Learning OpenGL ES for iOS", "Cocoa Design Patterns", "Cocoa Programming" Lecturer Wright State University Researcher Serial Entrepreneur
Erik M. Buck
Loads a list of campaigns from the internet and displays them

Campaign Browser Loads a list of campaigns from the internet and displays them. Dependency Management The project has some dependencies to third-party

null 0 Nov 9, 2021
A minimal iOS app that displays 3d graphic art in AR.

AR Art Attractors A minimal iOS AR(Augumented Reality) app that displays 3D graphic arts in AR. It uses attractor systems. An attractor is a set of st

Yasuhito Nagatomo 21 Nov 4, 2022
Displays your HomeKit temperature sensors in your menu bar

Temperature Glance Displays your HomeKit temperature sensors in your menu bar Screenshot Note This is a very simple app that I made for myself but dec

Fernando Bunn 15 Nov 14, 2022
A starter project for Sample Project in Objective C.

A starter project for Sample Project in Objective C.

Zeeshan Haider 31 Jul 31, 2021
Project 03 I created for "iOS & Swift - The Complete iOS App Development Bootcamp"

Dicee This is the third project I created for "iOS & Swift - The Complete iOS App Development Bootcamp" Our Goal The objective of this tutorial is to

Lukas Goodfellow 0 Dec 23, 2021
This project is an application that lets users learn about the missions and astronauts that formed NASA’s Apollo space program.

This project is an application that lets users learn about the missions and astronauts that formed NASA’s Apollo space program.

Baptiste Cadoux 0 Nov 10, 2021
NetworkIcom - Project using Swift and SwiftUI to access Icom 7610 via Ethernet

Background This repository is an upload of a local Git repository from an Apple

Mark Erbaugh 9 Sep 25, 2022
Turbo-iOS base project that's entirely driven from your backend Rails app.

Turbo-iOS base project that's entirely driven from your backend Rails app.

Dale Zak 109 Dec 11, 2022
PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

Alexandr 4k Jul 8, 2022
Sample iOS integration project

Sample integration of SweeprMobile SDK To quickly build the app: Fill-in the URLs and passwords inside env-default file Generate BuildConfig.swift bas

null 0 Jan 7, 2022