{"id":19233757,"url":"https://github.com/brightdigit/classicapp","last_synced_at":"2025-04-21T04:33:26.238Z","repository":{"id":81650355,"uuid":"401524349","full_name":"brightdigit/ClassicApp","owner":"brightdigit","description":"Example App For Migrating Your Objective-C code to Swift.","archived":false,"fork":false,"pushed_at":"2022-02-10T17:43:31.000Z","size":177,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T09:51:14.577Z","etag":null,"topics":["example","example-app","objective-c","swift","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brightdigit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-31T00:30:53.000Z","updated_at":"2024-11-09T16:42:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"5642d879-f787-48fa-823f-6b5dda1f79ab","html_url":"https://github.com/brightdigit/ClassicApp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FClassicApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FClassicApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FClassicApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brightdigit%2FClassicApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brightdigit","download_url":"https://codeload.github.com/brightdigit/ClassicApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249996257,"owners_count":21358097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","example-app","objective-c","swift","tutorial"],"created_at":"2024-11-09T16:11:44.376Z","updated_at":"2025-04-21T04:33:26.231Z","avatar_url":"https://github.com/brightdigit.png","language":"Swift","readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg alt=\"Rotary Phone Icon\" title=\"Rotary Phone Icon\" src=\"/Assets/rotary.png\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e ClassicApp \u003c/h1\u003e\n\nExample App For **Migrating Your Objective-C code to Swift**.\n\nBranches represent each step in a Piecemeal process of moving your app over:\n\n* Starting with [`step-0`](https://github.com/brightdigit/ClassicApp/tree/step-0) which is a basic `UITableViewController` application in Objective-C\n* [`step-1`](https://github.com/brightdigit/ClassicApp/tree/step-1)  - Optimizing Objective-C using Nullability and Generics\n* [`step-2`](https://github.com/brightdigit/ClassicApp/tree/step-2)  - Creating a Purely Swift Layer\n* [`step-3`](https://github.com/brightdigit/ClassicApp/tree/step-3)  - Creating a Compatiblity Layer between the Pure Swift and Existing Objective-C code\n* [`step-4`](https://github.com/brightdigit/ClassicApp/tree/step-4)  - Removing Remaining Objective-C code\n\n## Resources\n\n### Articles\n\n#### [**Imported C and Objective-C APIs** - Apple Developer](https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis)\n\nUse native Swift syntax to interoperate with types and functions in C and Objective-C.\n\n#### [**Upgrading Old Apps: The Dirty Job of iOS Development**](https://brightdigit.com/blog/2021/03/26/upgrading-old-ios-apps/) at *BrightDigit*\n\nUpgrading an iOS app can be time-consuming. It involves the process of refactoring, rewriting, and replacing some or all of the app’s code.\n \n\u003e This can introduce risk and uncertainty. However, it’s an opportunity to ensure your users are getting the best experience possible from your app. Over a long enough time, every app needs to be upgraded, whether to support the newer versions of iOS or take advantage of the latest features., Unfortunately, because the process is so often difficult, headache-inducing, and complicated, it is rarely looked forward to, and often avoided. \n\n### Podcast Episodes\n\n#### Episode 107 - Expert Swift with Shai Mishali\n\n\u003e In this episode, Leo is joined by Shai Mishali to chat about the new Ray Wenderlich he collaborated on: Expert Swift. They deep dive into topics like Codable, Objective-C Interop, and API Design.\n\n[🎙Podcast](https://share.transistor.fm/s/88850e6f) [📺Youtube](https://www.youtube.com/watch?v=wQNs2ii-zsI) \n\n#### Episode 109 - Objective-C Today with Graham Lee\n\n\u003e In this episode, Leo invites Graham Lee, Senior Research Software Engineer at the University of Oxford, who's been writing Objective-C for over 20 years and brings his experience to talk about what Swift developers should know about Objective-C and how the language works.\n\n[🎙Podcast](https://share.transistor.fm/s/6ba5bfff) [📺Youtube](https://www.youtube.com/watch?v=H8O0rj1It1w) \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightdigit%2Fclassicapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrightdigit%2Fclassicapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrightdigit%2Fclassicapp/lists"}