{"id":13732519,"url":"https://github.com/forem/DEV-ios","last_synced_at":"2025-05-08T07:30:48.744Z","repository":{"id":38291680,"uuid":"138352702","full_name":"forem/DEV-ios","owner":"forem","description":"DEV Community iOS App","archived":false,"fork":false,"pushed_at":"2023-11-15T19:34:57.000Z","size":16301,"stargazers_count":364,"open_issues_count":15,"forks_count":97,"subscribers_count":39,"default_branch":"main","last_synced_at":"2025-04-05T02:09:24.370Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/forem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-06-22T22:15:23.000Z","updated_at":"2025-02-27T07:39:08.000Z","dependencies_parsed_at":"2023-11-15T20:43:14.078Z","dependency_job_id":null,"html_url":"https://github.com/forem/DEV-ios","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/forem%2FDEV-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forem%2FDEV-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forem%2FDEV-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forem%2FDEV-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forem","download_url":"https://codeload.github.com/forem/DEV-ios/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253020691,"owners_count":21841622,"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":["hacktoberfest"],"created_at":"2024-08-03T02:02:01.106Z","updated_at":"2025-05-08T07:30:48.374Z","avatar_url":"https://github.com/forem.png","language":"Swift","funding_links":[],"categories":["Swift","iOS Apps (Search Results)"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/thepracticaldev/DEV-ios.svg?branch=master)](https://travis-ci.com/thepracticaldev/DEV-ios)\n[![GitHub License](http://img.shields.io/badge/License-GPL%20v3-blue.svg?style=flat)](https://github.com/thepracticaldev/DEV-ios/blob/master/LICENSE)\n[![Language](https://img.shields.io/badge/Language-Swift_5-f48041.svg?style=flat)](https://developer.apple.com/swift)\n[![Maintainability](https://api.codeclimate.com/v1/badges/b162322067740725ad02/maintainability)](https://codeclimate.com/github/thepracticaldev/DEV-ios/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/b162322067740725ad02/test_coverage)](https://codeclimate.com/github/thepracticaldev/DEV-ios/test_coverage)\n\n# DEV iOS 💖\n\nThis is the repo for the [dev.to](https://dev.to) iOS app.\n\n# Status:\n\nReleased first version, more info: https://twitter.com/bendhalpern/status/1061323718058786822\n\n# Design ethos\n\nWe will grow to include more native code over time, but for now we are taking the approach of _native shell/web views_. This approach lost favor early in iOS days, but I believe it is a very valid approach these days. It is inspired by how Basecamp does things. Our tech stack is a bit different, but the ideas are the same. \n\nhttps://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture-afc071589c25\n\nhttps://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content\n\nhttps://signalvnoise.com/posts/3766-hybrid-how-we-took-basecamp-multi-platform-with-a-tiny-team\n\nhttps://www.youtube.com/watch?v=SWEts0rlezA\n\nBy leveraging `wkwebviews` as much as possible, I think we can make this all pretty awesome and sync up with our web dev work pretty smoothly. And where it makes sense, we can re-implement certain things fully native, or build entirely native features. Life's a journey, not a destination.\n\n# Contributing\n1. Fork and clone the project.\n2. Build and run the project in XCode.\n3. To enforce code style we're using [SwiftLint](https://github.com/realm/SwiftLint) which is loosely based on [GitHub's Swift Style Guide](https://github.com/github/swift-style-guide). [CodeClimate](https://codeclimate.com) is enabled for this repository, so your pull request build will fail if there are linting errors!\n  1. To install, `brew install swiftlint`.\n  2. If you are using Xcode, add a new \"Run Script Phase\" (Xcode project \u003e Build Phases \u003e add New Run Script Phase):\n  ```bash\n  if which swiftlint \u003e/dev/null; then\n    swiftlint\n  else\n    echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\n  fi\n  ```\n   This will run on build and show linting errors in Xcode. If you are using a different IDE there are alternative install methods in the [SwiftLint](https://github.com/realm/SwiftLint) docs.\n  3. Alternatively you can run `$ swiftlint` in the root directory.\n\n\nFeedback and Pull Requests are welcome! As this is a new and constantly evolving project, please be sure to include unit tests with changes.\n\n# Thanks for your help!!!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforem%2FDEV-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforem%2FDEV-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforem%2FDEV-ios/lists"}