├── .github ├── osia_category_list.rb ├── osia_helper.rb ├── inspect.rb ├── osia_get_lic.rb ├── deploy.sh ├── osia_validate_categories.rb ├── osia_update_stars.rb ├── osia_get_links.rb ├── osia_update_lic.rb ├── PULL_REQUEST_TEMPLATE.md ├── CONTRIBUTING.md ├── osia_convert.rb ├── schema.json └── Hi.swift ├── circle.yml ├── ARCHIVE.md ├── LICENSE └── README.md /.github/osia_category_list.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | 3 | j = get_json 4 | c = j['categories'] 5 | 6 | osia_allowed_categories(c).each { |cat| puts cat } -------------------------------------------------------------------------------- /.github/osia_helper.rb: -------------------------------------------------------------------------------- 1 | require 'json' 2 | 3 | FILE = 'contents.json' 4 | 5 | def get_json 6 | JSON.parse(File.read FILE) 7 | end 8 | 9 | def osia_allowed_categories(c) 10 | c.sort_by { |h| h['title']}.map { |x| x['id']} 11 | end -------------------------------------------------------------------------------- /.github/inspect.rb: -------------------------------------------------------------------------------- 1 | require 'json' 2 | require 'pp' 3 | 4 | if ARGV.count == 0 5 | puts "Usage: ruby inspect.rb " 6 | exit 7 | end 8 | 9 | c = File.read 'contents.json' 10 | j = JSON.parse c 11 | 12 | projects = j['projects'] 13 | 14 | proj = ARGV[0].to_i 15 | pp projects[proj] 16 | -------------------------------------------------------------------------------- /.github/osia_get_lic.rb: -------------------------------------------------------------------------------- 1 | require 'octokit' 2 | require 'awesome_print' 3 | 4 | g = ARGV[0] 5 | 6 | if g.nil? 7 | puts "Usage: get_lic \n i.e. get_lic dkhamsing/BrandColors" 8 | exit 9 | end 10 | 11 | client = Octokit 12 | 13 | begin 14 | r = client.repo g, accept: 'application/vnd.github.drax-preview+json' 15 | ap r 16 | lic = r[:license][:key] 17 | 18 | print "Result: " 19 | ap lic 20 | rescue => e 21 | puts "Error: #{e}" 22 | end 23 | -------------------------------------------------------------------------------- /.github/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | git config user.name "READMEbot" 6 | git config user.email "readmebot@users.noreply.github.com" 7 | 8 | status=`git status` 9 | 10 | if [[ $status == *"README.md"* ]] 11 | then 12 | git add README.md 13 | git commit -m "[auto] [ci skip] Generate README" 14 | fi 15 | 16 | if [[ $status == *"ARCHIVE.md"* ]] 17 | then 18 | git add ARCHIVE.md 19 | git commit -m "[auto] [ci skip] Generate ARCHIVE" 20 | fi 21 | 22 | git push --quiet "https://${GH_TOKEN}@github.com/dkhamsing/open-source-ios-apps" master:master > /dev/null 2>&1 23 | -------------------------------------------------------------------------------- /.github/osia_validate_categories.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | 3 | j = get_json 4 | c = j['categories'] 5 | apps = j['projects'] 6 | 7 | def failed(cat, app) 8 | puts "‼️ #{cat} is not a valid category for #{app}" 9 | exit 1 10 | end 11 | 12 | def verify(cat, allowed, app) 13 | failed(cat, app) unless allowed.include? cat 14 | end 15 | 16 | allowed_categories = osia_allowed_categories(c) 17 | 18 | apps.each do |a| 19 | cat = a['category'] 20 | 21 | if cat.nil? 22 | puts "missing category for #{a}" 23 | exit 1 24 | end 25 | 26 | if cat.class == String 27 | verify(cat, allowed_categories, a) 28 | elsif cat.class == Array 29 | cat.each { |d| verify(d, allowed_categories, a) } 30 | end 31 | end 32 | 33 | puts 'categories validated ✅' 34 | -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | ruby: 3 | version: 2.2.0 4 | test: 5 | pre: 6 | - gem install awesome_bot 7 | - sudo pip install json-spec 8 | override: 9 | - ruby .github/osia_get_links.rb 10 | - awesome_bot check-links.txt -a 403 -w xbmc/xbmc 11 | - awesome_bot check-homepages.txt --allow-dupe -w wheelmap.org,sourceforge 12 | - json validate --schema-file=.github/schema.json --document-file=contents.json 13 | - ruby .github/osia_validate_categories.rb 14 | general: 15 | artifacts: 16 | - "check-links.txt" 17 | - "check-homepages.txt" 18 | - "ab-results-check-homepages.txt.json" 19 | - "ab-results-check-links.txt.json" 20 | deployment: 21 | master: 22 | branch: master 23 | commands: 24 | - ruby .github/osia_convert.rb 25 | - ./.github/deploy.sh 26 | -------------------------------------------------------------------------------- /.github/osia_update_stars.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | 3 | require 'octokit' 4 | require 'netrc' 5 | 6 | client = Octokit::Client.new(:netrc => true) 7 | 8 | j = get_json 9 | apps = j['projects'] 10 | updated = [] 11 | 12 | apps.each do |a| 13 | s = a['source'] 14 | if s.nil? 15 | updated.push a 16 | elsif !(s.include? 'github') 17 | updated.push a 18 | else 19 | print '.' 20 | begin 21 | g = s.gsub('https://github.com/', '') 22 | r = client.repo g 23 | stars = r['stargazers_count'] 24 | a['stars'] = stars 25 | updated.push a 26 | rescue => e 27 | puts "\nerror for #{s}: #{e}" 28 | updated.push a 29 | next 30 | end 31 | end 32 | end 33 | 34 | j['projects'] = updated 35 | 36 | File.open(FILE, 'w') { |f| f.write JSON.pretty_generate(j) } 37 | puts "\nUpdated #{FILE} ⭐️" 38 | -------------------------------------------------------------------------------- /.github/osia_get_links.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | 3 | OUTPUT = 'check-links.txt' 4 | HP = 'check-homepages.txt' 5 | 6 | def apps_archived(apps) 7 | a = apps.select {|a| a['tags'] != nil }.select {|b| b['tags'].include?'archive'} 8 | a.sort_by { |k, v| k['title'] } 9 | end 10 | 11 | j = get_json 12 | a = j['projects'] 13 | archived = apps_archived a 14 | active = a.reject { |x| archived.include? x } 15 | 16 | links = [] 17 | active.each do |z| 18 | links.push z['source'] 19 | links.push z['itunes'] unless z['itunes'].nil? 20 | end 21 | 22 | links.each_with_index { |z, i| puts "#{i+1} #{z}" } 23 | 24 | puts "Writing #{OUTPUT}" 25 | File.open(OUTPUT, 'w') { |f| f.puts links } 26 | 27 | hp = [] 28 | active.each do |z| 29 | hp.push z['homepage'] unless z['homepage'].nil? 30 | end 31 | 32 | hp.each_with_index { |z, i| puts "#{i+1} #{z}" } 33 | 34 | puts "Writing #{HP}" 35 | File.open(HP, 'w') { |f| f.puts hp } 36 | -------------------------------------------------------------------------------- /.github/osia_update_lic.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | 3 | require 'octokit' 4 | require 'netrc' 5 | 6 | client = Octokit::Client.new(:netrc => true) 7 | 8 | j = get_json 9 | apps = j['projects'] 10 | updated = [] 11 | 12 | apps.each do |a| 13 | s = a['source'] 14 | if s.nil? 15 | updated.push a 16 | elsif !(s.include? 'github') 17 | updated.push a 18 | else 19 | begin 20 | g = s.gsub('https://github.com/', '') 21 | r = client.repo g, accept: 'application/vnd.github.drax-preview+json' 22 | lic = r[:license][:key] 23 | print lic 24 | print ':' 25 | 26 | a['license'] = lic 27 | puts a['license'] 28 | 29 | updated.push a 30 | rescue => e 31 | a['license'] = 'other' 32 | puts a['license'] 33 | 34 | updated.push a 35 | next 36 | end 37 | end 38 | end 39 | 40 | j['projects'] = updated 41 | 42 | File.open(FILE, 'w') { |f| f.write JSON.pretty_generate(j) } 43 | puts "\nUpdated #{FILE} ⭐️" 44 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 0. [ ] Project URL: 10 | 1. [ ] Update contents.json instead of README 11 | 2. [ ] One project per pull request 12 | 3. [ ] Project added at the end of the list (a script sorts projects automatically) 13 | 4. [ ] Avoid iOS or open-source in description as it is assumed 14 | 5. [ ] Use this commit title format if applicable: Add app-name by @github-username 15 | 6. [ ] Use approved format for your entry 16 | 17 | 29 | -------------------------------------------------------------------------------- /ARCHIVE.md: -------------------------------------------------------------------------------- 1 | # Open-Source iOS Apps Archive 2 | 3 | This is an archive of the [main list](https://github.com/dkhamsing/open-source-ios-apps) for projects that are no longer maintained / old. 4 | 5 | - ABU https://github.com/flexih/ABU 6 | - AppSales-Mobile https://github.com/omz/AppSales-Mobile 7 | - Bancha https://github.com/squallstar/bancha-ios-app 8 | - Cheddar https://github.com/nothingmagical/cheddar-ios 9 | - Everest https://github.com/EverestOpenSource/Everest-iOS 10 | - LastFM https://github.com/lastfm/lastfm-iphone 11 | - Mume https://github.com/opensourceios/Mume 12 | - Pancake https://github.com/Imaginea/pancake-ios 13 | - PocketFlix https://code.google.com/archive/p/metasyntactic/wikis/PocketFlix.wiki 14 | - Repo https://github.com/ricburton/Repo 15 | - SudokuResolv https://github.com/Haoest/SudokuResolv 16 | - Vim https://github.com/applidium/Vim 17 | - iOctocat https://github.com/dennisreimann/ioctocat 18 | - wikiHow https://github.com/tderouin/wikiHow-iPhone-Application/ 19 | 20 | ## Contact 21 | 22 | - [github.com/dkhamsing](https://github.com/dkhamsing) 23 | - [twitter.com/dkhamsing](https://twitter.com/dkhamsing) 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | To contribute to`open-source-ios-apps`, update the **contents.json** file (this will generate the README). 2 | 3 | ## TLDR 4 | 5 | A new entry should update **contents.json** with this format: 6 | 7 | ```js 8 | { 9 | "title": "Name of the app", 10 | "category": "Category name", 11 | "description": "What this app does", 12 | "source": "Link to source, usually GitHub" 13 | } 14 | ``` 15 | 16 | :tada: 17 | 18 | ## New category 19 | 20 | Please [open an issue](https://github.com/dkhamsing/open-source-ios-apps/issues) and contact 21 | @dkhamsing, @kvnbautista or @scribblemaniac. 22 | 23 | ## Delete app 24 | 25 | To delete an app, add the value **archive** to the `tags` field (more [info](https://github.com/dkhamsing/open-source-ios-apps/wiki/Deleting)). 26 | 27 | ## New app 28 | 29 | Adding a `JSON` entry 30 | 31 | ### New entries go to the end of the file 32 | 33 | ![add-entry](https://cloud.githubusercontent.com/assets/4723115/15217463/7f8060c6-1810-11e6-97f7-3b555dc78bf9.gif) 34 | 35 | At the end of **contents.json**, add an entry at `}]`. 36 | 37 | ```js 38 | "stars": 100 39 | }] // here 40 | } 41 | ``` 42 | 43 | Insert a comma between `}` and `]` and create a new entry with the format below. 44 | 45 | ### Format 46 | 47 | Feel free to cut and paste the snippet below 48 | 49 | ```js 50 | { 51 | "title": "Name of the app", 52 | "category": "Category name", 53 | "description": "What this app does", 54 | "source": "Link to source, usually GitHub" 55 | } 56 | ``` 57 | 58 | #### Details 59 | 60 | `title`, `category`, `description` and `source` are required, the rest is optional. 61 | 62 | ```js 63 | { 64 | "title": "App name", 65 | "category": ["github", "parse"], 66 | "description": "Describe what this app does", 67 | "source": "https://github.com/user/repo", 68 | "homepage": "https://awesome-url", 69 | "itunes": "https://itunes.apple.com/app/id1234567890", 70 | "lang": "zho", 71 | "stars": 200, 72 | "tags": ["swift"] 73 | } 74 | ``` 75 | 76 | - `category`: Use an approved category from this list https://github.com/dkhamsing/open-source-ios-apps/wiki/Categories 77 | 78 | - `category`: An app can belong to more than one category, in that case use a list format in the example above 79 | 80 | - `stars`: Number of GitHub stars 81 | 82 | - `lang`: App language in the form of ISO 639-2 code https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes 83 | 84 | - `tags`: List of app attribute tags, use `swift` if the app is written in Swift 85 | 86 | - `itunes`: Link to App Store 87 | 88 | - No regional restriction: the app should not have a region in the URL (`/gb` below) 89 | 90 | - Good: https://itunes.apple.com/app/gorillas/id302275459 91 | - Bad: https://itunes.apple.com/gb/app/gorillas/id302275459 92 | 93 | - If the app is only available in a region, the URL should have a region 94 | 95 | - Good: https://itunes.apple.com/gb/app/closebox-find-closest-postbox/id556364813 96 | - Bad: https://itunes.apple.com/app/closebox-find-closest-postbox/id556364813 97 | 98 | 99 | #### Examples 100 | 101 | - https://github.com/dkhamsing/open-source-ios-apps/pull/281 102 | - https://github.com/dkhamsing/open-source-ios-apps/pull/281/files 103 | 104 | ```js 105 | { 106 | "title": "Firefox", 107 | "category": ["browser", "official"], 108 | "description": "Official Firefox app", 109 | "source": "https://github.com/mozilla/firefox-ios", 110 | "itunes": "https://itunes.apple.com/app/firefox-web-browser/id989804926", 111 | "stars": 5641, 112 | "tags": ["swift"] 113 | } 114 | ``` 115 | 116 | ```js 117 | { 118 | "title": "VLC", 119 | "category": ["media", "official"], 120 | "description": "Media Player", 121 | "source": "https://github.com/videolan/vlc", 122 | "homepage": "https://www.videolan.org/", 123 | "itunes": "https://itunes.apple.com/app/vlc-for-ios/id650377962", 124 | "stars": 1753 125 | } 126 | ``` 127 | 128 | ```js 129 | { 130 | "title": "Simple Reader", 131 | "category": "hacker-news", 132 | "source": "https://github.com/rnystrom/HackerNewsReader", 133 | "itunes": "https://itunes.apple.com/app/simple-reader-free-open-source/id1000995253", 134 | "stars": 182 135 | } 136 | ``` 137 | 138 | Thanks for contributing :tada: 139 | -------------------------------------------------------------------------------- /.github/osia_convert.rb: -------------------------------------------------------------------------------- 1 | require_relative 'osia_helper' 2 | require 'date' 3 | 4 | README = 'README.md' 5 | 6 | ARCHIVE = 'ARCHIVE.md' 7 | ARCHIVE_TAG = 'archive' 8 | 9 | def apps_archived(apps) 10 | a = apps.select {|a| a['tags'] != nil }.select {|b| b['tags'].include?ARCHIVE_TAG} 11 | a.sort_by { |k, v| k['title'] } 12 | end 13 | 14 | def apps_for_cat(apps, id) 15 | f = apps.select do |a| 16 | 17 | tags = a['tags'] 18 | if tags.nil? 19 | true 20 | else 21 | !(tags.include? ARCHIVE_TAG) 22 | end 23 | end 24 | 25 | s = f.select do |a| 26 | cat = a['category'] 27 | cat.class == Array ? cat.include?(id) : (cat == id) 28 | end 29 | s.sort_by { |k, v| k['title'].downcase } 30 | end 31 | 32 | def output_apps(apps) 33 | o = '' 34 | apps.each do |a| 35 | name = a['title'] 36 | link = a['source'] 37 | itunes = a['itunes'] 38 | homepage = a['homepage'] 39 | desc = a['description'] 40 | tags = a['tags'] 41 | stars = a['stars'] 42 | lang = a['lang'] 43 | 44 | o << "- #{name}" 45 | 46 | if desc.nil? 47 | o << ' ' 48 | else 49 | o << ": #{desc} " if desc.size>0 50 | end 51 | 52 | unless tags.nil? 53 | o << "🔶" if tags.include? 'swift' 54 | end 55 | 56 | unless lang.nil? 57 | o << output_flag(lang) 58 | end 59 | 60 | unless stars.nil? 61 | o << output_stars(stars) 62 | end 63 | 64 | o << "\n" 65 | o << " - #{link}\n" 66 | o << " - #{homepage}\n" unless homepage.nil? 67 | o << " - #{itunes}\n" unless itunes.nil? 68 | end 69 | o 70 | end 71 | 72 | def output_flag(lang) 73 | case lang 74 | when 'ger' 75 | '🇩🇪' 76 | when 'jpn' 77 | '🇯🇵' 78 | when 'ltz' 79 | '🇱🇺' 80 | when 'nld' 81 | '🇳🇱' 82 | when 'por' 83 | '🇧🇷' 84 | when 'spa' 85 | '🇪🇸' 86 | when 'zho' 87 | '🇨🇳' 88 | else 89 | '' 90 | end 91 | end 92 | 93 | def output_stars(number) 94 | case number 95 | when 100...200 96 | '🔥' 97 | when 200...500 98 | '🔥🔥' 99 | when 500...1000 100 | '🔥🔥🔥' 101 | when 1000...2000 102 | '🔥🔥🔥🔥' 103 | when 2000...100000 104 | '🔥🔥🔥🔥🔥' 105 | else 106 | '' 107 | end 108 | end 109 | 110 | def write_readme(j) 111 | t = j['title'] 112 | desc = j['description'] 113 | h = j['header'] 114 | f = j['footer'] 115 | cats = j['categories'] 116 | apps = j['projects'] 117 | 118 | date = DateTime.now 119 | date_display = date.strftime "%B %e, %Y" 120 | 121 | output = '# ' + t 122 | output << "\n\n" 123 | output << desc 124 | output << "\n\nA collaborative list of **#{apps.count}** open-source iOS apps, your [contribution](https://github.com/dkhamsing/open-source-ios-apps/blob/master/.github/CONTRIBUTING.md) is welcome :smile: " 125 | output << "(last update *#{date_display}*)." 126 | 127 | output << "\n \nJump to \n \n" 128 | 129 | cats.each do |c| 130 | title = c['title'] 131 | m = title.match /\[.*?\]/ 132 | title = m[0].sub('[', '').sub(']', '') unless m.nil? 133 | temp = "#{' ' unless c['parent']==nil }- [#{title}](\##{c['id']}) \n" 134 | output << temp 135 | end 136 | 137 | output << "- [Bonus](#bonus) \n" 138 | 139 | output << "\n" 140 | output << h 141 | output << "\n" 142 | 143 | cats.each do |c| 144 | temp = "\n#\##{'#' unless c['parent']==nil } #{c['title']} \n \n" 145 | 146 | d = c['description'] 147 | temp << "#{d} — " unless d.nil? 148 | 149 | temp << "[back to top](#readme) \n \n" 150 | output << temp 151 | 152 | cat_apps = apps_for_cat(apps, c['id']) 153 | output << output_apps(cat_apps) 154 | end 155 | 156 | output << "\n" 157 | output << f 158 | 159 | File.open(README, 'w') { |f| f.write output } 160 | puts "wrote #{README} ✨" 161 | end 162 | 163 | def write_archive(j) 164 | t = j['title'] 165 | desc = "This is an archive of the [main list](https://github.com/dkhamsing/open-source-ios-apps) for projects that are no longer maintained / old.\n\n" 166 | f = "## Contact\n\n- [github.com/dkhamsing](https://github.com/dkhamsing)\n- [twitter.com/dkhamsing](https://twitter.com/dkhamsing)\n" 167 | apps = j['projects'] 168 | archived = apps_archived apps 169 | 170 | output = "\# #{t} Archive\n\n" 171 | output << desc 172 | 173 | archived.each do |a| 174 | t = a['title'] 175 | s = a['source'] 176 | output << "- #{t} #{s}\n" 177 | # output << 178 | end 179 | 180 | output << "\n" 181 | output << f 182 | 183 | file = ARCHIVE 184 | File.open(file, 'w') { |f| f.write output } 185 | puts "wrote #{file} ✨" 186 | end 187 | 188 | j = get_json 189 | 190 | write_readme(j) 191 | write_archive(j) 192 | -------------------------------------------------------------------------------- /.github/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-04/schema#", 3 | "$id": "https://raw.githubusercontent.com/dkhamsing/open-source-ios-apps/master/.github/schema.json", 4 | "type": "object", 5 | "properties": { 6 | "title": { 7 | "type": "string" 8 | }, 9 | "description": { 10 | "type": "string" 11 | }, 12 | "header": { 13 | "type": "string" 14 | }, 15 | "footer": { 16 | "type": "string" 17 | }, 18 | "categories": { 19 | "type": "array", 20 | "uniqueItems": true, 21 | "items": { 22 | "title": "Category Object", 23 | "description": "A category to group project objects under.", 24 | "properties": { 25 | "title": { 26 | "title": "Category Title", 27 | "description": "A human-readable identifier for the category.", 28 | "type": "string" 29 | }, 30 | "id": { 31 | "title": "Category Identifier", 32 | "description": "A short identifier designed for programs. It should only contain lowercase alphanumeric characters and a - (dash) for replacing spaces.", 33 | "type": "string", 34 | "pattern": "^[^A-Z_ ]+$" 35 | }, 36 | "description": { 37 | "title": "Category Description", 38 | "description": "A description of the category meant to be provided to the user.", 39 | "type": "string", 40 | "default": "" 41 | }, 42 | "parent": { 43 | "title": "Category Parent", 44 | "description": "Makes the current category a subcategory of the category with an id that matches this value.", 45 | "type": ["string", "null"], 46 | "default": null 47 | } 48 | }, 49 | "required": ["title", "id"], 50 | "additionalProperties": false 51 | } 52 | }, 53 | "projects": { 54 | "type": "array", 55 | "uniqueItems": true, 56 | "items": { 57 | "title": "Project Object", 58 | "description": "An object that holds all the information for a specific project.", 59 | "properties": { 60 | "title": { 61 | "title": "Project Title", 62 | "description": "The official title of the project.", 63 | "type": "string" 64 | }, 65 | "category": { 66 | "title": "Project Category", 67 | "description": "The category or list of categories that the project falls under. If it is a list, the categories should be ordered from most to least relevant/applicable to the project.", 68 | "type": ["string", "array"], 69 | "items": { 70 | "type": "string" 71 | } 72 | }, 73 | "description": { 74 | "title": "Project Description", 75 | "description": "A brief 1 sentence summary of the project.", 76 | "type": "string" 77 | }, 78 | "lang": { 79 | "title": "Project Language", 80 | "description": "A three-character ISO 639-2 code representing the primary language of the project, or a list of such codes, with the primary language first.", 81 | "type": ["string", "array"], 82 | "minLength": 3, 83 | "maxLength": 3, 84 | "minItems": 1, 85 | "items": { 86 | "type": "string", 87 | "minLength": 3, 88 | "maxLength": 3 89 | }, 90 | "default": "eng" 91 | }, 92 | "country": { 93 | "title": "Project Country", 94 | "description": "The country that the project operates out of or the country the project is designed for (if designed for a specific location). Null if country is unclear/unspecified.", 95 | "type": ["string", "null"], 96 | "minLength": 2, 97 | "maxLength": 2, 98 | "default": null 99 | }, 100 | "license": { 101 | "title": "Project License", 102 | "description": "The license that the project's source is under.", 103 | "type": "string", 104 | "enum": ["mit", "mpl-2.0", "gpl-3.0", "lgpl-3.0", "unlicense", "bsd-2-clause", "isc", "lgpl-2.1", "gpl-2.0", "apache-2.0", "cc0-1.0", "artistic-2.0", "bsd-3-clause", "agpl-3.0", "epl-1.0", "other"], 105 | "default": "other" 106 | }, 107 | "source": { 108 | "title": "Project Source", 109 | "description": "A URL where the source code to the project can be found.", 110 | "type": "string", 111 | "pattern": "^https?:\\/\\/.*?\\..*$" 112 | }, 113 | "homepage": { 114 | "title": "Project Homepage", 115 | "description": "The URL for the project's homepage.", 116 | "type": ["string", "null"], 117 | "pattern": "^https?:\\/\\/.*?\\..*$", 118 | "default": null 119 | }, 120 | "itunes": { 121 | "title": "Project iTunes Page", 122 | "description": "The URL for iTunes page for the project's app.", 123 | "type": ["string", "null"], 124 | "pattern": "^https:\\/\\/itunes\\.apple\\.com\\/.*?app\\/([^\\/]+\\/)?id[0-9]+$", 125 | "default": null 126 | }, 127 | "stars": { 128 | "title": "Project Stars", 129 | "description": "The number of stars a project has on Github, or null if the project is not a Github project.", 130 | "type": ["null", "number"], 131 | "multipleOf": 1.0, 132 | "minimum": 0, 133 | "default": null 134 | }, 135 | "tags": { 136 | "title": "Project Tags", 137 | "description": "A place to put any metadata for a project. The items can be any type.", 138 | "type": "array", 139 | "default": [] 140 | } 141 | 142 | }, 143 | "required": ["title", "category", "source"], 144 | "additionalProperties": false 145 | } 146 | } 147 | }, 148 | "required": ["title", "categories", "projects"], 149 | "additionalProperties": false 150 | } 151 | -------------------------------------------------------------------------------- /.github/Hi.swift: -------------------------------------------------------------------------------- 1 | print("Hello world") 2 | print("Hello world") 3 | print("Hello world") 4 | print("Hello world") 5 | print("Hello world") 6 | print("Hello world") 7 | print("Hello world") 8 | print("Hello world") 9 | print("Hello world") 10 | print("Hello world") 11 | print("Hello world") 12 | print("Hello world") 13 | print("Hello world") 14 | print("Hello world") 15 | print("Hello world") 16 | print("Hello world") 17 | print("Hello world") 18 | print("Hello world") 19 | print("Hello world") 20 | print("Hello world") 21 | print("Hello world") 22 | print("Hello world") 23 | print("Hello world") 24 | print("Hello world") 25 | print("Hello world") 26 | print("Hello world") 27 | print("Hello world") 28 | print("Hello world") 29 | print("Hello world") 30 | print("Hello world") 31 | print("Hello world") 32 | print("Hello world") 33 | print("Hello world") 34 | print("Hello world") 35 | print("Hello world") 36 | print("Hello world") 37 | print("Hello world") 38 | print("Hello world") 39 | print("Hello world") 40 | print("Hello world") 41 | print("Hello world") 42 | print("Hello world") 43 | print("Hello world") 44 | print("Hello world") 45 | print("Hello world") 46 | print("Hello world") 47 | print("Hello world") 48 | print("Hello world") 49 | print("Hello world") 50 | print("Hello world") 51 | print("Hello world") 52 | print("Hello world") 53 | print("Hello world") 54 | print("Hello world") 55 | print("Hello world") 56 | print("Hello world") 57 | print("Hello world") 58 | print("Hello world") 59 | print("Hello world") 60 | print("Hello world") 61 | print("Hello world") 62 | print("Hello world") 63 | print("Hello world") 64 | print("Hello world") 65 | print("Hello world") 66 | print("Hello world") 67 | print("Hello world") 68 | print("Hello world") 69 | print("Hello world") 70 | print("Hello world") 71 | print("Hello world") 72 | print("Hello world") 73 | print("Hello world") 74 | print("Hello world") 75 | print("Hello world") 76 | print("Hello world") 77 | print("Hello world") 78 | print("Hello world") 79 | print("Hello world") 80 | print("Hello world") 81 | print("Hello world") 82 | print("Hello world") 83 | print("Hello world") 84 | print("Hello world") 85 | print("Hello world") 86 | print("Hello world") 87 | print("Hello world") 88 | print("Hello world") 89 | print("Hello world") 90 | print("Hello world") 91 | print("Hello world") 92 | print("Hello world") 93 | print("Hello world") 94 | print("Hello world") 95 | print("Hello world") 96 | print("Hello world") 97 | print("Hello world") 98 | print("Hello world") 99 | print("Hello world") 100 | print("Hello world") 101 | print("Hello world") 102 | print("Hello world") 103 | print("Hello world") 104 | print("Hello world") 105 | print("Hello world") 106 | print("Hello world") 107 | print("Hello world") 108 | print("Hello world") 109 | print("Hello world") 110 | print("Hello world") 111 | print("Hello world") 112 | print("Hello world") 113 | print("Hello world") 114 | print("Hello world") 115 | print("Hello world") 116 | print("Hello world") 117 | print("Hello world") 118 | print("Hello world") 119 | print("Hello world") 120 | print("Hello world") 121 | print("Hello world") 122 | print("Hello world") 123 | print("Hello world") 124 | print("Hello world") 125 | print("Hello world") 126 | print("Hello world") 127 | print("Hello world") 128 | print("Hello world") 129 | print("Hello world") 130 | print("Hello world") 131 | print("Hello world") 132 | print("Hello world") 133 | print("Hello world") 134 | print("Hello world") 135 | print("Hello world") 136 | print("Hello world") 137 | print("Hello world") 138 | print("Hello world") 139 | print("Hello world") 140 | print("Hello world") 141 | print("Hello world") 142 | print("Hello world") 143 | print("Hello world") 144 | print("Hello world") 145 | print("Hello world") 146 | print("Hello world") 147 | print("Hello world") 148 | print("Hello world") 149 | print("Hello world") 150 | print("Hello world") 151 | print("Hello world") 152 | print("Hello world") 153 | print("Hello world") 154 | print("Hello world") 155 | print("Hello world") 156 | print("Hello world") 157 | print("Hello world") 158 | print("Hello world") 159 | print("Hello world") 160 | print("Hello world") 161 | print("Hello world") 162 | print("Hello world") 163 | print("Hello world") 164 | print("Hello world") 165 | print("Hello world") 166 | print("Hello world") 167 | print("Hello world") 168 | print("Hello world") 169 | print("Hello world") 170 | print("Hello world") 171 | print("Hello world") 172 | print("Hello world") 173 | print("Hello world") 174 | print("Hello world") 175 | print("Hello world") 176 | print("Hello world") 177 | print("Hello world") 178 | print("Hello world") 179 | print("Hello world") 180 | print("Hello world") 181 | print("Hello world") 182 | print("Hello world") 183 | print("Hello world") 184 | print("Hello world") 185 | print("Hello world") 186 | print("Hello world") 187 | print("Hello world") 188 | print("Hello world") 189 | print("Hello world") 190 | print("Hello world") 191 | print("Hello world") 192 | print("Hello world") 193 | print("Hello world") 194 | print("Hello world") 195 | print("Hello world") 196 | print("Hello world") 197 | print("Hello world") 198 | print("Hello world") 199 | print("Hello world") 200 | print("Hello world") 201 | print("Hello world") 202 | print("Hello world") 203 | print("Hello world") 204 | print("Hello world") 205 | print("Hello world") 206 | print("Hello world") 207 | print("Hello world") 208 | print("Hello world") 209 | print("Hello world") 210 | print("Hello world") 211 | print("Hello world") 212 | print("Hello world") 213 | print("Hello world") 214 | print("Hello world") 215 | print("Hello world") 216 | print("Hello world") 217 | print("Hello world") 218 | print("Hello world") 219 | print("Hello world") 220 | print("Hello world") 221 | print("Hello world") 222 | print("Hello world") 223 | print("Hello world") 224 | print("Hello world") 225 | print("Hello world") 226 | print("Hello world") 227 | print("Hello world") 228 | print("Hello world") 229 | print("Hello world") 230 | print("Hello world") 231 | print("Hello world") 232 | print("Hello world") 233 | print("Hello world") 234 | print("Hello world") 235 | print("Hello world") 236 | print("Hello world") 237 | print("Hello world") 238 | print("Hello world") 239 | print("Hello world") 240 | print("Hello world") 241 | print("Hello world") 242 | print("Hello world") 243 | print("Hello world") 244 | print("Hello world") 245 | print("Hello world") 246 | print("Hello world") 247 | print("Hello world") 248 | print("Hello world") 249 | print("Hello world") 250 | print("Hello world") 251 | print("Hello world") 252 | print("Hello world") 253 | print("Hello world") 254 | print("Hello world") 255 | print("Hello world") 256 | print("Hello world") 257 | print("Hello world") 258 | print("Hello world") 259 | print("Hello world") 260 | print("Hello world") 261 | print("Hello world") 262 | print("Hello world") 263 | print("Hello world") 264 | print("Hello world") 265 | print("Hello world") 266 | print("Hello world") 267 | print("Hello world") 268 | print("Hello world") 269 | print("Hello world") 270 | print("Hello world") 271 | print("Hello world") 272 | print("Hello world") 273 | print("Hello world") 274 | print("Hello world") 275 | print("Hello world") 276 | print("Hello world") 277 | print("Hello world") 278 | print("Hello world") 279 | print("Hello world") 280 | print("Hello world") 281 | print("Hello world") 282 | print("Hello world") 283 | print("Hello world") 284 | print("Hello world") 285 | print("Hello world") 286 | print("Hello world") 287 | print("Hello world") 288 | print("Hello world") 289 | print("Hello world") 290 | print("Hello world") 291 | print("Hello world") 292 | print("Hello world") 293 | print("Hello world") 294 | print("Hello world") 295 | print("Hello world") 296 | print("Hello world") 297 | print("Hello world") 298 | print("Hello world") 299 | print("Hello world") 300 | print("Hello world") 301 | print("Hello world") 302 | print("Hello world") 303 | print("Hello world") 304 | print("Hello world") 305 | print("Hello world") 306 | print("Hello world") 307 | print("Hello world") 308 | print("Hello world") 309 | print("Hello world") 310 | print("Hello world") 311 | print("Hello world") 312 | print("Hello world") 313 | print("Hello world") 314 | print("Hello world") 315 | print("Hello world") 316 | print("Hello world") 317 | print("Hello world") 318 | print("Hello world") 319 | print("Hello world") 320 | print("Hello world") 321 | print("Hello world") 322 | print("Hello world") 323 | print("Hello world") 324 | print("Hello world") 325 | print("Hello world") 326 | print("Hello world") 327 | print("Hello world") 328 | print("Hello world") 329 | print("Hello world") 330 | print("Hello world") 331 | print("Hello world") 332 | print("Hello world") 333 | print("Hello world") 334 | print("Hello world") 335 | print("Hello world") 336 | print("Hello world") 337 | print("Hello world") 338 | print("Hello world") 339 | print("Hello world") 340 | print("Hello world") 341 | print("Hello world") 342 | print("Hello world") 343 | print("Hello world") 344 | print("Hello world") 345 | print("Hello world") 346 | print("Hello world") 347 | print("Hello world") 348 | print("Hello world") 349 | print("Hello world") 350 | print("Hello world") 351 | print("Hello world") 352 | print("Hello world") 353 | print("Hello world") 354 | print("Hello world") 355 | print("Hello world") 356 | print("Hello world") 357 | print("Hello world") 358 | print("Hello world") 359 | print("Hello world") 360 | print("Hello world") 361 | print("Hello world") 362 | print("Hello world") 363 | print("Hello world") 364 | print("Hello world") 365 | print("Hello world") 366 | print("Hello world") 367 | print("Hello world") 368 | print("Hello world") 369 | print("Hello world") 370 | print("Hello world") 371 | print("Hello world") 372 | print("Hello world") 373 | print("Hello world") 374 | print("Hello world") 375 | print("Hello world") 376 | print("Hello world") 377 | print("Hello world") 378 | print("Hello world") 379 | print("Hello world") 380 | print("Hello world") 381 | print("Hello world") 382 | print("Hello world") 383 | print("Hello world") 384 | print("Hello world") 385 | print("Hello world") 386 | print("Hello world") 387 | print("Hello world") 388 | print("Hello world") 389 | print("Hello world") 390 | print("Hello world") 391 | print("Hello world") 392 | print("Hello world") 393 | print("Hello world") 394 | print("Hello world") 395 | print("Hello world") 396 | print("Hello world") 397 | print("Hello world") 398 | print("Hello world") 399 | print("Hello world") 400 | print("Hello world") 401 | print("Hello world") 402 | print("Hello world") 403 | print("Hello world") 404 | print("Hello world") 405 | print("Hello world") 406 | print("Hello world") 407 | print("Hello world") 408 | print("Hello world") 409 | print("Hello world") 410 | print("Hello world") 411 | print("Hello world") 412 | print("Hello world") 413 | print("Hello world") 414 | print("Hello world") 415 | print("Hello world") 416 | print("Hello world") 417 | print("Hello world") 418 | print("Hello world") 419 | print("Hello world") 420 | print("Hello world") 421 | print("Hello world") 422 | print("Hello world") 423 | print("Hello world") 424 | print("Hello world") 425 | print("Hello world") 426 | print("Hello world") 427 | print("Hello world") 428 | print("Hello world") 429 | print("Hello world") 430 | print("Hello world") 431 | print("Hello world") 432 | print("Hello world") 433 | print("Hello world") 434 | print("Hello world") 435 | print("Hello world") 436 | print("Hello world") 437 | print("Hello world") 438 | print("Hello world") 439 | print("Hello world") 440 | print("Hello world") 441 | print("Hello world") 442 | print("Hello world") 443 | print("Hello world") 444 | print("Hello world") 445 | print("Hello world") 446 | print("Hello world") 447 | print("Hello world") 448 | print("Hello world") 449 | print("Hello world") 450 | print("Hello world") 451 | print("Hello world") 452 | print("Hello world") 453 | print("Hello world") 454 | print("Hello world") 455 | print("Hello world") 456 | print("Hello world") 457 | print("Hello world") 458 | print("Hello world") 459 | print("Hello world") 460 | print("Hello world") 461 | print("Hello world") 462 | print("Hello world") 463 | print("Hello world") 464 | print("Hello world") 465 | print("Hello world") 466 | print("Hello world") 467 | print("Hello world") 468 | print("Hello world") 469 | print("Hello world") 470 | print("Hello world") 471 | print("Hello world") 472 | print("Hello world") 473 | print("Hello world") 474 | print("Hello world") 475 | print("Hello world") 476 | print("Hello world") 477 | print("Hello world") 478 | print("Hello world") 479 | print("Hello world") 480 | print("Hello world") 481 | print("Hello world") 482 | print("Hello world") 483 | print("Hello world") 484 | print("Hello world") 485 | print("Hello world") 486 | print("Hello world") 487 | print("Hello world") 488 | print("Hello world") 489 | print("Hello world") 490 | print("Hello world") 491 | print("Hello world") 492 | print("Hello world") 493 | print("Hello world") 494 | print("Hello world") 495 | print("Hello world") 496 | print("Hello world") 497 | print("Hello world") 498 | print("Hello world") 499 | print("Hello world") 500 | print("Hello world") 501 | print("Hello world") 502 | print("Hello world") 503 | print("Hello world") 504 | print("Hello world") 505 | print("Hello world") 506 | print("Hello world") 507 | print("Hello world") 508 | print("Hello world") 509 | print("Hello world") 510 | print("Hello world") 511 | print("Hello world") 512 | print("Hello world") 513 | print("Hello world") 514 | print("Hello world") 515 | print("Hello world") 516 | print("Hello world") 517 | print("Hello world") 518 | print("Hello world") 519 | print("Hello world") 520 | print("Hello world") 521 | print("Hello world") 522 | print("Hello world") 523 | print("Hello world") 524 | print("Hello world") 525 | print("Hello world") 526 | print("Hello world") 527 | print("Hello world") 528 | print("Hello world") 529 | print("Hello world") 530 | print("Hello world") 531 | print("Hello world") 532 | print("Hello world") 533 | print("Hello world") 534 | print("Hello world") 535 | print("Hello world") 536 | print("Hello world") 537 | print("Hello world") 538 | print("Hello world") 539 | print("Hello world") 540 | print("Hello world") 541 | print("Hello world") 542 | print("Hello world") 543 | print("Hello world") 544 | print("Hello world") 545 | print("Hello world") 546 | print("Hello world") 547 | print("Hello world") 548 | print("Hello world") 549 | print("Hello world") 550 | print("Hello world") 551 | print("Hello world") 552 | print("Hello world") 553 | print("Hello world") 554 | print("Hello world") 555 | print("Hello world") 556 | print("Hello world") 557 | print("Hello world") 558 | print("Hello world") 559 | print("Hello world") 560 | print("Hello world") 561 | print("Hello world") 562 | print("Hello world") 563 | print("Hello world") 564 | print("Hello world") 565 | print("Hello world") 566 | print("Hello world") 567 | print("Hello world") 568 | print("Hello world") 569 | print("Hello world") 570 | print("Hello world") 571 | print("Hello world") 572 | print("Hello world") 573 | print("Hello world") 574 | print("Hello world") 575 | print("Hello world") 576 | print("Hello world") 577 | print("Hello world") 578 | print("Hello world") 579 | print("Hello world") 580 | print("Hello world") 581 | print("Hello world") 582 | print("Hello world") 583 | print("Hello world") 584 | print("Hello world") 585 | print("Hello world") 586 | print("Hello world") 587 | print("Hello world") 588 | print("Hello world") 589 | print("Hello world") 590 | print("Hello world") 591 | print("Hello world") 592 | print("Hello world") 593 | print("Hello world") 594 | print("Hello world") 595 | print("Hello world") 596 | print("Hello world") 597 | print("Hello world") 598 | print("Hello world") 599 | print("Hello world") 600 | print("Hello world") 601 | print("Hello world") 602 | print("Hello world") 603 | print("Hello world") 604 | print("Hello world") 605 | print("Hello world") 606 | print("Hello world") 607 | print("Hello world") 608 | print("Hello world") 609 | print("Hello world") 610 | print("Hello world") 611 | print("Hello world") 612 | print("Hello world") 613 | print("Hello world") 614 | print("Hello world") 615 | print("Hello world") 616 | print("Hello world") 617 | print("Hello world") 618 | print("Hello world") 619 | print("Hello world") 620 | print("Hello world") 621 | print("Hello world") 622 | print("Hello world") 623 | print("Hello world") 624 | print("Hello world") 625 | print("Hello world") 626 | print("Hello world") 627 | print("Hello world") 628 | print("Hello world") 629 | print("Hello world") 630 | print("Hello world") 631 | print("Hello world") 632 | print("Hello world") 633 | print("Hello world") 634 | print("Hello world") 635 | print("Hello world") 636 | print("Hello world") 637 | print("Hello world") 638 | print("Hello world") 639 | print("Hello world") 640 | print("Hello world") 641 | print("Hello world") 642 | print("Hello world") 643 | print("Hello world") 644 | print("Hello world") 645 | print("Hello world") 646 | print("Hello world") 647 | print("Hello world") 648 | print("Hello world") 649 | print("Hello world") 650 | print("Hello world") 651 | print("Hello world") 652 | print("Hello world") 653 | print("Hello world") 654 | print("Hello world") 655 | print("Hello world") 656 | print("Hello world") 657 | print("Hello world") 658 | print("Hello world") 659 | print("Hello world") 660 | print("Hello world") 661 | print("Hello world") 662 | print("Hello world") 663 | print("Hello world") 664 | print("Hello world") 665 | print("Hello world") 666 | print("Hello world") 667 | print("Hello world") 668 | print("Hello world") 669 | print("Hello world") 670 | print("Hello world") 671 | print("Hello world") 672 | print("Hello world") 673 | print("Hello world") 674 | print("Hello world") 675 | print("Hello world") 676 | print("Hello world") 677 | print("Hello world") 678 | print("Hello world") 679 | print("Hello world") 680 | print("Hello world") 681 | print("Hello world") 682 | print("Hello world") 683 | print("Hello world") 684 | print("Hello world") 685 | print("Hello world") 686 | print("Hello world") 687 | print("Hello world") 688 | print("Hello world") 689 | print("Hello world") 690 | print("Hello world") 691 | print("Hello world") 692 | print("Hello world") 693 | print("Hello world") 694 | print("Hello world") 695 | print("Hello world") 696 | print("Hello world") 697 | print("Hello world") 698 | print("Hello world") 699 | print("Hello world") 700 | print("Hello world") 701 | print("Hello world") 702 | print("Hello world") 703 | print("Hello world") 704 | print("Hello world") 705 | print("Hello world") 706 | print("Hello world") 707 | print("Hello world") 708 | print("Hello world") 709 | print("Hello world") 710 | print("Hello world") 711 | print("Hello world") 712 | print("Hello world") 713 | print("Hello world") 714 | print("Hello world") 715 | print("Hello world") 716 | print("Hello world") 717 | print("Hello world") 718 | print("Hello world") 719 | print("Hello world") 720 | print("Hello world") 721 | print("Hello world") 722 | print("Hello world") 723 | print("Hello world") 724 | print("Hello world") 725 | print("Hello world") 726 | print("Hello world") 727 | print("Hello world") 728 | print("Hello world") 729 | print("Hello world") 730 | print("Hello world") 731 | print("Hello world") 732 | print("Hello world") 733 | print("Hello world") 734 | print("Hello world") 735 | print("Hello world") 736 | print("Hello world") 737 | print("Hello world") 738 | print("Hello world") 739 | print("Hello world") 740 | print("Hello world") 741 | print("Hello world") 742 | print("Hello world") 743 | print("Hello world") 744 | print("Hello world") 745 | print("Hello world") 746 | print("Hello world") 747 | print("Hello world") 748 | print("Hello world") 749 | print("Hello world") 750 | print("Hello world") 751 | print("Hello world") 752 | print("Hello world") 753 | print("Hello world") 754 | print("Hello world") 755 | print("Hello world") 756 | print("Hello world") 757 | print("Hello world") 758 | print("Hello world") 759 | print("Hello world") 760 | print("Hello world") 761 | print("Hello world") 762 | print("Hello world") 763 | print("Hello world") 764 | print("Hello world") 765 | print("Hello world") 766 | print("Hello world") 767 | print("Hello world") 768 | print("Hello world") 769 | print("Hello world") 770 | print("Hello world") 771 | print("Hello world") 772 | print("Hello world") 773 | print("Hello world") 774 | print("Hello world") 775 | print("Hello world") 776 | print("Hello world") 777 | print("Hello world") 778 | print("Hello world") 779 | print("Hello world") 780 | print("Hello world") 781 | print("Hello world") 782 | print("Hello world") 783 | print("Hello world") 784 | print("Hello world") 785 | print("Hello world") 786 | print("Hello world") 787 | print("Hello world") 788 | print("Hello world") 789 | print("Hello world") 790 | print("Hello world") 791 | print("Hello world") 792 | print("Hello world") 793 | print("Hello world") 794 | print("Hello world") 795 | print("Hello world") 796 | print("Hello world") 797 | print("Hello world") 798 | print("Hello world") 799 | print("Hello world") 800 | print("Hello world") 801 | print("Hello world") 802 | print("Hello world") 803 | print("Hello world") 804 | print("Hello world") 805 | print("Hello world") 806 | print("Hello world") 807 | print("Hello world") 808 | print("Hello world") 809 | print("Hello world") 810 | print("Hello world") 811 | print("Hello world") 812 | print("Hello world") 813 | print("Hello world") 814 | print("Hello world") 815 | print("Hello world") 816 | print("Hello world") 817 | print("Hello world") 818 | print("Hello world") 819 | print("Hello world") 820 | print("Hello world") 821 | print("Hello world") 822 | print("Hello world") 823 | print("Hello world") 824 | print("Hello world") 825 | print("Hello world") 826 | print("Hello world") 827 | print("Hello world") 828 | print("Hello world") 829 | print("Hello world") 830 | print("Hello world") 831 | print("Hello world") 832 | print("Hello world") 833 | print("Hello world") 834 | print("Hello world") 835 | print("Hello world") 836 | print("Hello world") 837 | print("Hello world") 838 | print("Hello world") 839 | print("Hello world") 840 | print("Hello world") 841 | print("Hello world") 842 | print("Hello world") 843 | print("Hello world") 844 | print("Hello world") 845 | print("Hello world") 846 | print("Hello world") 847 | print("Hello world") 848 | print("Hello world") 849 | print("Hello world") 850 | print("Hello world") 851 | print("Hello world") 852 | print("Hello world") 853 | print("Hello world") 854 | print("Hello world") 855 | print("Hello world") 856 | print("Hello world") 857 | print("Hello world") 858 | print("Hello world") 859 | print("Hello world") 860 | print("Hello world") 861 | print("Hello world") 862 | print("Hello world") 863 | print("Hello world") 864 | print("Hello world") 865 | print("Hello world") 866 | print("Hello world") 867 | print("Hello world") 868 | print("Hello world") 869 | print("Hello world") 870 | print("Hello world") 871 | print("Hello world") 872 | print("Hello world") 873 | print("Hello world") 874 | print("Hello world") 875 | print("Hello world") 876 | print("Hello world") 877 | print("Hello world") 878 | print("Hello world") 879 | print("Hello world") 880 | print("Hello world") 881 | print("Hello world") 882 | print("Hello world") 883 | print("Hello world") 884 | print("Hello world") 885 | print("Hello world") 886 | print("Hello world") 887 | print("Hello world") 888 | print("Hello world") 889 | print("Hello world") 890 | print("Hello world") 891 | print("Hello world") 892 | print("Hello world") 893 | print("Hello world") 894 | print("Hello world") 895 | print("Hello world") 896 | print("Hello world") 897 | print("Hello world") 898 | print("Hello world") 899 | print("Hello world") 900 | print("Hello world") 901 | print("Hello world") 902 | print("Hello world") 903 | print("Hello world") 904 | print("Hello world") 905 | print("Hello world") 906 | print("Hello world") 907 | print("Hello world") 908 | print("Hello world") 909 | print("Hello world") 910 | print("Hello world") 911 | print("Hello world") 912 | print("Hello world") 913 | print("Hello world") 914 | print("Hello world") 915 | print("Hello world") 916 | print("Hello world") 917 | print("Hello world") 918 | print("Hello world") 919 | print("Hello world") 920 | print("Hello world") 921 | print("Hello world") 922 | print("Hello world") 923 | print("Hello world") 924 | print("Hello world") 925 | print("Hello world") 926 | print("Hello world") 927 | print("Hello world") 928 | print("Hello world") 929 | print("Hello world") 930 | print("Hello world") 931 | print("Hello world") 932 | print("Hello world") 933 | print("Hello world") 934 | print("Hello world") 935 | print("Hello world") 936 | print("Hello world") 937 | print("Hello world") 938 | print("Hello world") 939 | print("Hello world") 940 | print("Hello world") 941 | print("Hello world") 942 | print("Hello world") 943 | print("Hello world") 944 | print("Hello world") 945 | print("Hello world") 946 | print("Hello world") 947 | print("Hello world") 948 | print("Hello world") 949 | print("Hello world") 950 | print("Hello world") 951 | print("Hello world") 952 | print("Hello world") 953 | print("Hello world") 954 | print("Hello world") 955 | print("Hello world") 956 | print("Hello world") 957 | print("Hello world") 958 | print("Hello world") 959 | print("Hello world") 960 | print("Hello world") 961 | print("Hello world") 962 | print("Hello world") 963 | print("Hello world") 964 | print("Hello world") 965 | print("Hello world") 966 | print("Hello world") 967 | print("Hello world") 968 | print("Hello world") 969 | print("Hello world") 970 | print("Hello world") 971 | print("Hello world") 972 | print("Hello world") 973 | print("Hello world") 974 | print("Hello world") 975 | print("Hello world") 976 | print("Hello world") 977 | print("Hello world") 978 | print("Hello world") 979 | print("Hello world") 980 | print("Hello world") 981 | print("Hello world") 982 | print("Hello world") 983 | print("Hello world") 984 | print("Hello world") 985 | print("Hello world") 986 | print("Hello world") 987 | print("Hello world") 988 | print("Hello world") 989 | print("Hello world") 990 | print("Hello world") 991 | print("Hello world") 992 | print("Hello world") 993 | print("Hello world") 994 | print("Hello world") 995 | print("Hello world") 996 | print("Hello world") 997 | print("Hello world") 998 | print("Hello world") 999 | print("Hello world") 1000 | print("Hello world") 1001 | print("Hello world") 1002 | print("Hello world") 1003 | print("Hello world") 1004 | print("Hello world") 1005 | print("Hello world") 1006 | print("Hello world") 1007 | print("Hello world") 1008 | print("Hello world") 1009 | print("Hello world") 1010 | print("Hello world") 1011 | print("Hello world") 1012 | print("Hello world") 1013 | print("Hello world") 1014 | print("Hello world") 1015 | print("Hello world") 1016 | print("Hello world") 1017 | print("Hello world") 1018 | print("Hello world") 1019 | print("Hello world") 1020 | print("Hello world") 1021 | print("Hello world") 1022 | print("Hello world") 1023 | print("Hello world") 1024 | print("Hello world") 1025 | print("Hello world") 1026 | print("Hello world") 1027 | print("Hello world") 1028 | print("Hello world") 1029 | print("Hello world") 1030 | print("Hello world") 1031 | print("Hello world") 1032 | print("Hello world") 1033 | print("Hello world") 1034 | print("Hello world") 1035 | print("Hello world") 1036 | print("Hello world") 1037 | print("Hello world") 1038 | print("Hello world") 1039 | print("Hello world") 1040 | print("Hello world") 1041 | print("Hello world") 1042 | print("Hello world") 1043 | print("Hello world") 1044 | print("Hello world") 1045 | print("Hello world") 1046 | print("Hello world") 1047 | print("Hello world") 1048 | print("Hello world") 1049 | print("Hello world") 1050 | print("Hello world") 1051 | print("Hello world") 1052 | print("Hello world") 1053 | print("Hello world") 1054 | print("Hello world") 1055 | print("Hello world") 1056 | print("Hello world") 1057 | print("Hello world") 1058 | print("Hello world") 1059 | print("Hello world") 1060 | print("Hello world") 1061 | print("Hello world") 1062 | print("Hello world") 1063 | print("Hello world") 1064 | print("Hello world") 1065 | print("Hello world") 1066 | print("Hello world") 1067 | print("Hello world") 1068 | print("Hello world") 1069 | print("Hello world") 1070 | print("Hello world") 1071 | print("Hello world") 1072 | print("Hello world") 1073 | print("Hello world") 1074 | print("Hello world") 1075 | print("Hello world") 1076 | print("Hello world") 1077 | print("Hello world") 1078 | print("Hello world") 1079 | print("Hello world") 1080 | print("Hello world") 1081 | print("Hello world") 1082 | print("Hello world") 1083 | print("Hello world") 1084 | print("Hello world") 1085 | print("Hello world") 1086 | print("Hello world") 1087 | print("Hello world") 1088 | print("Hello world") 1089 | print("Hello world") 1090 | print("Hello world") 1091 | print("Hello world") 1092 | print("Hello world") 1093 | print("Hello world") 1094 | print("Hello world") 1095 | print("Hello world") 1096 | print("Hello world") 1097 | print("Hello world") 1098 | print("Hello world") 1099 | print("Hello world") 1100 | print("Hello world") 1101 | print("Hello world") 1102 | print("Hello world") 1103 | print("Hello world") 1104 | print("Hello world") 1105 | print("Hello world") 1106 | print("Hello world") 1107 | print("Hello world") 1108 | print("Hello world") 1109 | print("Hello world") 1110 | print("Hello world") 1111 | print("Hello world") 1112 | print("Hello world") 1113 | print("Hello world") 1114 | print("Hello world") 1115 | print("Hello world") 1116 | print("Hello world") 1117 | print("Hello world") 1118 | print("Hello world") 1119 | print("Hello world") 1120 | print("Hello world") 1121 | print("Hello world") 1122 | print("Hello world") 1123 | print("Hello world") 1124 | print("Hello world") 1125 | print("Hello world") 1126 | print("Hello world") 1127 | print("Hello world") 1128 | print("Hello world") 1129 | print("Hello world") 1130 | print("Hello world") 1131 | print("Hello world") 1132 | print("Hello world") 1133 | print("Hello world") 1134 | print("Hello world") 1135 | print("Hello world") 1136 | print("Hello world") 1137 | print("Hello world") 1138 | print("Hello world") 1139 | print("Hello world") 1140 | print("Hello world") 1141 | print("Hello world") 1142 | print("Hello world") 1143 | print("Hello world") 1144 | print("Hello world") 1145 | print("Hello world") 1146 | print("Hello world") 1147 | print("Hello world") 1148 | print("Hello world") 1149 | print("Hello world") 1150 | print("Hello world") 1151 | print("Hello world") 1152 | print("Hello world") 1153 | print("Hello world") 1154 | print("Hello world") 1155 | print("Hello world") 1156 | print("Hello world") 1157 | print("Hello world") 1158 | print("Hello world") 1159 | print("Hello world") 1160 | print("Hello world") 1161 | print("Hello world") 1162 | print("Hello world") 1163 | print("Hello world") 1164 | print("Hello world") 1165 | print("Hello world") 1166 | print("Hello world") 1167 | print("Hello world") 1168 | print("Hello world") 1169 | print("Hello world") 1170 | print("Hello world") 1171 | print("Hello world") 1172 | print("Hello world") 1173 | print("Hello world") 1174 | print("Hello world") 1175 | print("Hello world") 1176 | print("Hello world") 1177 | print("Hello world") 1178 | print("Hello world") 1179 | print("Hello world") 1180 | print("Hello world") 1181 | print("Hello world") 1182 | print("Hello world") 1183 | print("Hello world") 1184 | print("Hello world") 1185 | print("Hello world") 1186 | print("Hello world") 1187 | print("Hello world") 1188 | print("Hello world") 1189 | print("Hello world") 1190 | print("Hello world") 1191 | print("Hello world") 1192 | print("Hello world") 1193 | print("Hello world") 1194 | print("Hello world") 1195 | print("Hello world") 1196 | print("Hello world") 1197 | print("Hello world") 1198 | print("Hello world") 1199 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open-Source iOS Apps 2 | 3 | 6 | 7 | A collaborative list of **503** open-source iOS apps, your [contribution](https://github.com/dkhamsing/open-source-ios-apps/blob/master/.github/CONTRIBUTING.md) is welcome :smile: (last update *July 13, 2016*). 8 | 9 | Jump to 10 | 11 | - [Apple TV](#apple-tv) 12 | - [Apple Watch](#apple-watch) 13 | - [Browser](#browser) 14 | - [Communication](#communication) 15 | - [Conference](#conference) 16 | - [Content Blocking](#content-blocking) 17 | - [Developer](#developer) 18 | - [GitHub](#github) 19 | - [Finance](#finance) 20 | - [Games](#games) 21 | - [Emulators](#emulators) 22 | - [Health](#health) 23 | - [ResearchKit](#researchkit) 24 | - [Keyboards](#keyboards) 25 | - [Location](#location) 26 | - [Media](#media) 27 | - [News](#news) 28 | - [Hacker News](#hacker-news) 29 | - [Official](#official) 30 | - [Sample](#sample) 31 | - [Science](#science) 32 | - [Security](#security) 33 | - [Social](#social) 34 | - [Tasks](#tasks) 35 | - [Weather](#weather) 36 | - [Web](#web) 37 | - [Misc](#misc) 38 | - [3D Touch](#3d-touch) 39 | - [Calendar](#calendar) 40 | - [Calculator](#calculator) 41 | - [Text](#text) 42 | - [Clock](#clock) 43 | - [Timer](#timer) 44 | - [Special](#special) 45 | - [Appcelerator](#appcelerator) 46 | - [Core Data](#core-data) 47 | - [Firebase](#firebase) 48 | - [Ionic](#ionic) 49 | - [Parse](#parse) 50 | - [React Native](#react-native) 51 | - [Reactive Programming](#reactive-programming) 52 | - [ReactiveCocoa](#reactivecocoa) 53 | - [RxSwift](#rxswift) 54 | - [Realm](#realm) 55 | - [VIPER](#viper) 56 | - [Xamarin](#xamarin) 57 | - [Bonus](#bonus) 58 | 59 | ``` 60 | 🔶 Swift projects 61 | 62 | Projects that are not in English have a flag 63 | 🇨🇳 Project is in Chinese 64 | 🇪🇸 Project is in Spanish, etc 65 | 66 | 100+ Stars: 🔥 67 | 200+ Stars: 🔥🔥 68 | 500+ Stars: 🔥🔥🔥 69 | 1000+ Stars: 🔥🔥🔥🔥 70 | 2000+ Stars: 🔥🔥🔥🔥🔥 71 | ``` 72 | 73 | ## Apple TV 74 | 75 | [back to top](#readme) 76 | 77 | - Artsy Shows: Art shows on your TV 🔶🔥🔥 78 | - https://github.com/artsy/Emergence 79 | - EX Player: Watch video from ex.ua 80 | - https://github.com/IGRSoft/exTVPlayer 81 | - iCook: A tvOS app that plays iCook TV videos 82 | - https://github.com/polydice/iCook-tvOS 83 | - Provenance: Emulators frontend supporting Sega Genesis, SNES, NES, GB/GBC, & more 🔥🔥🔥🔥🔥 84 | - https://github.com/jasarien/Provenance 85 | - RailsCasts: Watch RailsCasts videos on Apple TV 86 | - https://github.com/spritlesoftware/railscasts-on-appletv 87 | - Telemat-tvOS: Watch Public German Broadcast/TV company streams 🇩🇪 88 | - https://github.com/omichde/Telemat-tvOS 89 | - UitzendingGemist by 4np: Uitgebreide UitzendingGemist app voor Nederland 🔶🇳🇱 90 | - https://github.com/4np/UitzendingGemist 91 | - UitzendingGemist by jeffkreeftmeijer: Dutch Public Broadcasting video on demand 🔶 92 | - https://github.com/jeffkreeftmeijer/UitzendingGemist 93 | - Uncle Nagy's House: Uncle Nagy's House tvOS App (TVML app with Gulp tasks for building Jade and CoffeeScript) 94 | - https://github.com/kenmickles/unh_tvos 95 | - https://itunes.apple.com/us/app/id1042172021 96 | - WWDCTV: Watch the WWDC Videos on your Apple TV 🔥🔥 97 | - https://github.com/azzoor/WWDCTV 98 | 99 | ## Apple Watch 100 | 101 | [back to top](#readme) 102 | 103 | - BaiduFM-Swift 🔶🔥🔥🔥 104 | - https://github.com/belm/BaiduFM-Swift 105 | - Bither: Simple and secure Bitcoin wallet 106 | - https://github.com/bither/bither-ios 107 | - https://itunes.apple.com/app/bither/id899478936 108 | - Brew: Discover craft beer pubs nearby 🔶 109 | - https://github.com/contentful/ContentfulWatchKitExample 110 | - https://itunes.apple.com/app/id986830433 111 | - Bus Today: Track bus line on your wrist 🇨🇳 112 | - https://github.com/JohnWong/bus-today 113 | - https://itunes.apple.com/app/jin-ri-gong-jiao-tong-zhi/id975022341 114 | - Calculator by mukeshthawani 🔶 115 | - https://github.com/mukeshthawani/Calculator 116 | - Calculator by noodlewerk 🔶 117 | - https://github.com/noodlewerk/Apple_Watch_Calculator 118 | - Cherry: Mini Pomodoro Timer app 🔶🔥🔥 119 | - https://github.com/kenshin03/Cherry 120 | - Connectivity Demo 121 | - https://github.com/swilliams/watchkit-connectivity-demo 122 | - CoolSpot: The missing Spotify app 🔶 123 | - https://github.com/neonichu/CoolSpot 124 | - Cortado: Track your caffeine consumption habits 🔥 125 | - https://github.com/lazerwalker/cortado 126 | - https://itunes.apple.com/app/cortado/id969899327 127 | - Count It: Never lose the count again. Dead simple App with Apple Watch integration that lets you count anything. 🔶 128 | - https://github.com/PiXeL16/CountItApp 129 | - https://itunes.apple.com/app/id1098893335 130 | - Done: Data sharing between a WatchKit app and its main app using Realm 🔶 131 | - https://github.com/FancyPixel/done-swift 132 | - FlickrWatch: Apple Watch face using Flickr API 133 | - https://github.com/jazzychad/FlickrWatch 134 | - GrandCentralBoard: Hang a TV in your open space / team room to show everyone what's up and get them up to speed 🔶🔥 135 | - https://github.com/macoscope/GrandCentralBoard 136 | - Gulps: Track your daily water consumption 🔶🔥🔥🔥 137 | - https://github.com/FancyPixel/gulps 138 | - https://itunes.apple.com/app/gulps/id979057304 139 | - heartrate: Show streaming heartrate from the watch with watchOS 2 🔶🔥🔥 140 | - https://github.com/coolioxlr/watchOS-2-heartrate 141 | - HighStreet: Highstreet shopping app 🔶🔥🔥 142 | - https://github.com/GetHighstreet/HighstreetWatchApp 143 | - HN Reader: Hacker News Reader 🔶🔥🔥🔥🔥 144 | - https://github.com/Dimillian/SwiftHN 145 | - https://itunes.apple.com/app/hn-reader-hacker-news-reader/id919243741 146 | - Impulse: Real-time age ticker 🔶 147 | - https://github.com/Jasdev/Impulse 148 | - KTPomodoro: Mini Pomodoro Timer app 149 | - https://github.com/kenshin03/KTPomodoro 150 | - Lister: List app example by Apple 🔶 151 | - https://developer.apple.com/library/ios/samplecode/Lister/Introduction/Intro.html 152 | - Natural Language Clock: Display the time as you would speak it 🔶 153 | - https://github.com/chadkeck/Natural-Language-Clock 154 | - OnTime: Apple Watch app to access the SBB (Swiss railway) timetable 155 | - https://github.com/D-32/OnTime 156 | - Parties for WWDC 🔥🔥 157 | - https://github.com/genadyo/WWDC 158 | - https://itunes.apple.com/app/parties-for-wwdc/id879924066 159 | - PhoneBattery: Your phone's battery, on your wrist 160 | - https://github.com/marcelvoss/PhoneBattery 161 | - https://itunes.apple.com/app/phonebattery-your-phones-battery/id1009278300 162 | - PhotoWatch: Uses the SwiftyDropbox SDK 🔶 163 | - https://github.com/dropbox/PhotoWatch 164 | - Soon: Countdown App 🔶 165 | - https://github.com/sandofsky/soon 166 | - WatchKit-Apps: Tutorials app for WatchKit 🔶🔥🔥🔥🔥 167 | - https://github.com/kostiakoval/WatchKit-Apps 168 | - Watchman: A WatchOS2 Hangman Game 🔶 169 | - https://github.com/DanToml/Watchman 170 | - WatchNotes: Notes on your wrist 🔶 171 | - https://github.com/azamsharp/WatchNotes 172 | - watchOS-2-Sampler: Code examples for new features of watchOS 2 🔶🔥🔥🔥 173 | - https://github.com/shu223/watchOS-2-Sampler 174 | - WatchPics: Instagram app 175 | - https://github.com/D-32/WatchPics 176 | - WatchSnake: Game of Snake 🔶 177 | - https://github.com/davidcairns/-WatchSnake 178 | - WatchStocks: Track your stocks portfolio, also includes a watch face complication 🔶 179 | - https://github.com/G2Jose/WatchStocks 180 | - Wunderschnell: Order the right product with one tap on your wrist 🔶 181 | - https://github.com/contentful-labs/Wunderschnell 182 | 183 | ## Browser 184 | 185 | [back to top](#readme) 186 | 187 | - Brave: Firefox-based browser with ad blocking built in (also blocks tracking pixels/cookies) 🔶🔥🔥 188 | - https://github.com/brave/browser-ios 189 | - https://itunes.apple.com/app/brave-web-browser/id1052879175 190 | - Endless Browser: Web browser built with privacy and security in mind 191 | - https://github.com/jcs/endless 192 | - https://itunes.apple.com/app/endless-browser/id974745755 193 | - Firefox: Official Firefox app 🔶🔥🔥🔥🔥🔥 194 | - https://github.com/mozilla/firefox-ios 195 | - https://itunes.apple.com/app/firefox-web-browser/id989804926 196 | - Frameless: A full-screen web browser 🔶🔥🔥🔥 197 | - https://github.com/stakes/Frameless 198 | - https://itunes.apple.com/app/id933580264 199 | - Onion Browser: A Tor-powered web browser that improves your privacy. 🔥🔥🔥 200 | - https://github.com/mtigas/iOS-OnionBrowser 201 | - https://mike.tig.as/onionbrowser/ 202 | - https://itunes.apple.com/app/id519296448 203 | - Tob - Secure browser: A beautiful Tor browser to protect your anonymity. 204 | - https://github.com/JRock007/Tob 205 | - https://itunes.apple.com/app/id1063151782 206 | 207 | ## Communication 208 | 209 | [back to top](#readme) 210 | 211 | - Actor: Communication app with a focus on speed and security 🔥🔥🔥🔥🔥 212 | - https://github.com/actorapp/actor-platform 213 | - https://itunes.apple.com/app/actor-messenger/id1025501036 214 | - Antidote: A tox client. 🔥 215 | - https://github.com/Antidote-for-Tox/Antidote 216 | - https://antidote.im/ 217 | - BLEMeshChat: Bluetooth LE mesh chat 🔥🔥 218 | - https://github.com/chrisballinger/BLEMeshChat 219 | - Chats: Messages app 🔶🔥🔥🔥🔥 220 | - https://github.com/acani/Chats 221 | - ChatSecure: Encrypted chat app that supports OTR encryption over XMPP 🔥🔥🔥🔥 222 | - https://github.com/ChatSecure/ChatSecure-iOS 223 | - https://itunes.apple.com/app/chatsecure-encrypted-messenger/id464200063 224 | - Chaty: Anonymous chat app leveraging Google's Firebase, a NoSQL backend and WebSocket for real time data synching 🔥🔥 225 | - https://github.com/LunarFlash/Chaty 226 | - Colloquy: IRC client 227 | - https://github.com/colloquy/colloquy 228 | - IRCCloud: An IRC client/service 🔥 229 | - https://github.com/irccloud/ios 230 | - https://itunes.apple.com/app/irccloud/id672699103 231 | - Linphone: Make free audio/video calls and text messages. 232 | - https://www.linphone.org/technical-corner/linphone/downloads 233 | - https://www.linphone.org/ 234 | - https://itunes.apple.com/app/linphone/id360065638 235 | - M: Email with device-to-device encryption for messages sent between M users 236 | - https://github.com/Mynigma/M 237 | - https://itunes.apple.com/app/m-safe-email-made-simple/id818498595 238 | - Mumble: Gaming-focused social voice chat utility 🔥 239 | - https://github.com/mumble-voip/mumble-iphoneos 240 | - Rocket.Chat: Meteor chat platform app 🔶🔥 241 | - https://github.com/RocketChat/Rocket.Chat.iOS 242 | - Signal: Free, world-wide, private messaging and phone calls for iPhone 🔥🔥🔥🔥 243 | - https://github.com/WhisperSystems/Signal-iOS 244 | - https://itunes.apple.com/app/id874139669 245 | - Spika: A secure business messenger. 246 | - https://github.com/cloverstudio/Spika 247 | - https://spika.business/ 248 | - surespot: Secures all messages using end-to-end encryption 249 | - https://github.com/surespot/surespot-ios 250 | - https://itunes.apple.com/app/surespot/id790314865 251 | - Telegram: Messaging app with a focus on speed and security 🔥🔥🔥 252 | - https://github.com/peter-iakovlev/Telegram 253 | - https://itunes.apple.com/app/telegram-messenger/id686449807 254 | - TextEthan: Clone of TextEthan, a messaging app that allows anyone to message you 🔶 255 | - https://github.com/thii/TextEthan 256 | - TSWeChat: A WeChat alternative 🔶🔥🔥🔥🔥 257 | - https://github.com/hilen/TSWeChat 258 | - Tutanota: End-to-end encrypted email. 🔥🔥🔥🔥 259 | - https://github.com/tutao/tutanota 260 | - https://tutanota.com/ 261 | - https://itunes.apple.com/app/id922429609 262 | 263 | ## Conference 264 | 265 | [back to top](#readme) 266 | 267 | - EventBlankApp: App for events or conferences 🔶🔥🔥 268 | - https://github.com/icanzilb/EventBlankApp 269 | - Hack Cancer: Hackathon app 🔶 270 | - https://github.com/HackCancer/iOS 271 | - https://itunes.apple.com/app/hack-cancer/id1030806844 272 | - NortalTechDay: Nortal TechDay 2015 app 🔥 273 | - https://github.com/mikkoj/NortalTechDay 274 | - ParseDeveloperDay: Parse 2013 developer conference app 275 | - https://github.com/ParsePlatform/ParseDeveloperDay 276 | - RWDevCon: RWDevCon app 🔶 277 | - https://github.com/raywenderlich/RWDevCon-App 278 | - trySwiftApp: try! Swift conference app 🔶🔥🔥 279 | - https://github.com/tryswift/trySwiftApp 280 | - Valio: Valio Con 2014 schedule 🔶🔥🔥 281 | - https://github.com/soffes/valio 282 | 283 | ## Content Blocking 284 | 285 | [back to top](#readme) 286 | 287 | - Adblock Fast 🔥🔥 288 | - https://github.com/rocketshipapps/adblockfast 289 | - https://itunes.apple.com/app/adblock-fast/id1032930802 290 | - Adblock Plus 291 | - https://github.com/adblockplus/adblockplussafariios 292 | - https://itunes.apple.com/app/adblock-plus-abp/id1028871868 293 | - BlockParty 🔥🔥🔥 294 | - https://github.com/krishkumar/BlockParty 295 | - Focus: Content blocker by Firefox 🔶🔥🔥 296 | - https://github.com/mozilla/focus 297 | - Swab: The Content Blocker of Creative, Web and Design Culture Ads 🔶 298 | - https://github.com/pkamb/swab 299 | - http://swabthe.com/ 300 | - https://itunes.apple.com/app/swab-content-blocker-creative/id1042086002 301 | 302 | ## Developer 303 | 304 | [back to top](#readme) 305 | 306 | - AppLove: View app reviews for all territories (countries) 🔶 307 | - https://github.com/snowpunch/AppLove 308 | - https://itunes.apple.com/app/app-love/id1099336831 309 | - AppSlate: Make your own iOS applications. 🔥 310 | - https://github.com/Taehan-Kim/AppSlate 311 | - https://www.facebook.com/AppSlate 312 | - https://itunes.apple.com/app/id511327336 313 | - Bequest: Create and replay HTTP/S requests 🔶 314 | - https://github.com/splinesoft/Bequest 315 | - Blink: Mobile shell terminal based on Mosh 316 | - https://github.com/blinksh/blink 317 | - Charter: A Swift mailing list client for iPhone and iPad 🔶🔥🔥 318 | - https://github.com/matthewpalmer/Charter 319 | - https://itunes.apple.com/app/charter-mailing-list-client/id1082212697 320 | - CI2Go: An unofficial CircleCI Client 🔶 321 | - https://github.com/ngs/ci2go 322 | - https://itunes.apple.com/app/ci2go-the-circleci-client/id940028427 323 | - CodeBucket: Browse and maintain your Bitbucket repositories 🔥 324 | - https://github.com/thedillonb/CodeBucket 325 | - Codinator: Code editor for iPhone and iPad 326 | - https://github.com/DanilaVladi/codinator 327 | - https://itunes.apple.com/app/codinator/id1024671232 328 | - Piwik Mobile 2: Access Piwik analytics on the go. 329 | - https://github.com/piwik/piwik-mobile-2 330 | - https://piwik.org/mobile/ 331 | - https://itunes.apple.com/app/id737216887 332 | - RealmVideo: Watch Realm videos and slides on your phone 🔶🔥🔥 333 | - https://github.com/BalestraPatrick/RealmVideo 334 | - Review Time: Shows average review times for iOS and Mac apps 🔶🔥 335 | - https://github.com/nthegedus/ReviewTime 336 | - TLDR Man Page: Reference dictionary for computer manual commands, but in TL;DR (Too long didn't read) mode 🔶 337 | - https://github.com/freesuraj/TLDR 338 | - https://itunes.apple.com/app/tldr-man-page/id1073433250 339 | - wat: Very simple packet sniffer in Swift 🔶 340 | - https://github.com/pj4533/wat 341 | 342 | ### GitHub 343 | 344 | [back to top](#readme) 345 | 346 | - CodeHub: Browse and maintain GitHub repositories. 🔥🔥🔥🔥🔥 347 | - https://github.com/thedillonb/CodeHub 348 | - http://codehub-app.com/ 349 | - https://itunes.apple.com/app/id707173885 350 | - GitBucket: GitHub client using MVVM & ReactiveCocoa 🔥🔥🔥🔥🔥 351 | - https://github.com/leichunfeng/MVVMReactiveCocoa 352 | - https://itunes.apple.com/app/id961330940 353 | - Github-Swift: App written in Swift using the Github API 🔶 354 | - https://github.com/acmacalister/Github-Swift 355 | - Monkey: GitHub third party client that shows the rank of coders and repositories 🔥🔥🔥🔥 356 | - https://github.com/coderyi/Monkey 357 | - https://itunes.apple.com/app/monkey-for-github/id1003765407 358 | - MrCode: GitHub iPhone app that can cache Markdown content 🇨🇳🔥🔥 359 | - https://github.com/haolloyin/MrCode 360 | - OctoPodium: List user rankings based on GitHub repository star count 🔶🔥 361 | - https://github.com/nunogoncalves/iOS-OctoPodium 362 | - https://itunes.apple.com/app/octopodium/id1077519133 363 | - SwiftHub: View Swift repositories from Github 364 | - https://github.com/sahandnayebaziz/StateView-Samples-SwiftHub 365 | 366 | ## Finance 367 | 368 | [back to top](#readme) 369 | 370 | - BitStore: Bitcoin wallet 371 | - https://github.com/BitStore/BitStore-iOS 372 | - https://itunes.apple.com/app/bitstore/id890668158 373 | - breadwallet: Bitcoin wallet 374 | - https://github.com/breadwallet/breadwallet 375 | - https://itunes.apple.com/app/breadwallet/id885251393 376 | - Buck Tracker: Expense tracker 🔶 377 | - https://github.com/hkalexling/Buck_Tracker 378 | - https://itunes.apple.com/app/ibudgeter/id1048395728 379 | - Coins: Bitcoin value tracker 🔶🔥 380 | - https://github.com/nothingmagical/coins 381 | - Concurrency: Beautiful, intuitive currency converter 🔥🔥 382 | - https://github.com/nicklockwood/Concurrency 383 | - https://itunes.apple.com/app/concurrency/id738872892 384 | - doughwallet: Dogecoin wallet 385 | - https://github.com/peritus/doughwallet 386 | - https://itunes.apple.com/app/doughwallet/id951731776 387 | - EMI Calculator for Home, Personal & Car Loan: Calculate your Equated Monthly instalment (EMI) for Home loan, Housing loan, Car loan & Personal loan 🔶 388 | - https://github.com/tirupati17/loan-emi-calculator-clean-swift 389 | - https://itunes.apple.com/app/id1105890730 390 | - Neverlate: Pay-if-U-R-late app using geofences and Venmo API 391 | - https://github.com/ayunav/Neverlate 392 | - Savings Assistant: Expense tracker 🔶 393 | - https://github.com/chrisamanse/savings-assistant 394 | - https://itunes.apple.com/app/savings-assistant/id1022760996 395 | - SIP - Calculator: SIP calculator calculates the future value of SIP (Systematic Investment Plan) payments 🔶 396 | - https://github.com/tirupati17/sip-calculator-swift 397 | - https://itunes.apple.com/app/id1092822415 398 | - TodayStocks: Lightweight stocks app that shows your portfolio in a minimalist today extension 399 | - https://github.com/premnirmal/TodayStocks 400 | - https://itunes.apple.com/app/todaystocks/id993467855 401 | - ToThePenny: Budget tracker 402 | - https://github.com/vanyaland/ToThePenny 403 | - https://itunes.apple.com/app/tothepenny/id994476075 404 | 405 | ## Games 406 | 407 | [back to top](#readme) 408 | 409 | - 2048 in Objective-C 🔥 410 | - https://github.com/austinzheng/iOS-2048 411 | - 2048 in Objective-C using SpriteKit 🔥🔥🔥 412 | - https://github.com/danqing/2048 413 | - 2048 in Swift 🔶🔥🔥🔥🔥🔥 414 | - https://github.com/austinzheng/swift-2048 415 | - Aeropack: A steampunk retro 2d platformer. 416 | - https://github.com/insurgentgames/Aeropack 417 | - Balloon Burst: A simple game to use in learning Cocos2D 418 | - https://github.com/jamiely/ios-balloon-burst 419 | - Bridges: A puzzle game with bridges, houses, tolls, and subways 🔥 420 | - https://github.com/zgrossbart/bridges 421 | - https://itunes.apple.com/app/seven-bridges/id586598714 422 | - Canabalt: Infinite runner 🔥🔥🔥🔥 423 | - https://github.com/ericjohnson/canabalt-ios 424 | - https://itunes.apple.com/app/canabalt/id333180061 425 | - CardsAgainst: Cards Against Humanity app 🔶🔥🔥 426 | - https://github.com/jpsim/CardsAgainst 427 | - Castle Hassle: A real-time physical game where you build your kingdom while crushing your opponents. 🔥 428 | - https://github.com/bryceredd/CastleHassle 429 | - https://itunes.apple.com/app/castle-hassle/id524566068 430 | - Chess: Chess game to learn SpriteKit 🔶 431 | - https://github.com/mjcuva/Chess 432 | - Chuck: Throw a ball and catch it. Over and over and over. 433 | - https://github.com/moowahaha/Chuck 434 | - https://itunes.apple.com/app/chuck/id1050453297 435 | - CodeCombat: Multiplayer programming game for learning how to code 436 | - https://github.com/codecombat/codecombat-ios 437 | - Concentration game (翻翻看) 🔶🇨🇳🔥 438 | - https://github.com/geek5nan/FanFanSwift 439 | - Cryptose: Solve cryptograms as a Hacker, Detective, or Spy. 440 | - https://github.com/insurgentgames/Cryptose 441 | - DOOM: Doom Classic for iOS 🔥🔥 442 | - https://github.com/id-Software/DOOM-iOS 443 | - https://itunes.apple.com/app/doom-classic/id336347946 444 | - DOOM-IOS2: Doom Classic for iOS version 2 🔥 445 | - https://github.com/id-Software/DOOM-IOS2 446 | - https://itunes.apple.com/app/doom-ii-rpg/id354051766 447 | - Dragon Shout App 2: A social journal for the Elder Scrolls® series. 448 | - https://github.com/rblalock/dragon_shout_app_open_source 449 | - https://itunes.apple.com/app/id690208182 450 | - DropColour Game in Swift 2.2: Arcade game in which you simply have to drag and drop one circle onto another of the same color. 🔶 451 | - https://github.com/elpassion/DropColour-iOS 452 | - https://itunes.apple.com/app/dropcolour/id1046339763 453 | - Dungeon Crawl: A game of dungeon exploration, combat and magic, involving characters of diverse skills 454 | - https://github.com/CliffsDover/crawl 455 | - https://github.com/CliffsDover/crawl/tree/iOS_Release 456 | - Five In A Row (五子棋): SpriteKit game 🇨🇳 457 | - https://github.com/WelkinXie/FiveInARow 458 | - FlappySwift: Swift implementation of Flappy Bird 🔶🔥🔥🔥🔥🔥 459 | - https://github.com/fullstackio/FlappySwift 460 | - Frotz: Play hundreds of free works of Interactive Fiction (a.k.a. text adventure games). 461 | - https://github.com/ifrotz/iosfrotz 462 | - https://github.com/ifrotz/iosfrotz/blob/wiki/FrotzMain.md 463 | - https://itunes.apple.com/app/id287653015 464 | - Game Of Life: Conway's Game of Life 🔶 465 | - https://github.com/yonbergman/swift-gameoflife 466 | - GBA4iOS: Gameboy, Gameboy Color & Gameboy Advance emulator 467 | - https://bitbucket.org/rileytestut/gba4ios/ 468 | - Gorillas: An iPhone (or iPod touch) port of the popular old QBasic game with spunk! 🔥🔥 469 | - https://github.com/Lyndir/Gorillas 470 | - http://gorillas.lyndir.com/ 471 | - https://itunes.apple.com/app/gorillas/id302275459 472 | - GrubbyWorm: A simple digital worm game made with iOS 9, SpriteKit, GameplayKit and ReplayKit, written in Swift 2 🔶 473 | - https://github.com/gamechina/GrubbyWorm 474 | - Hedgewars: A turn-based strategy game. 475 | - http://hg.hedgewars.org/hedgewars/ 476 | - http://www.hedgewars.org/ 477 | - https://itunes.apple.com/app/id391234866 478 | - Heredox: Place tiles to form your allegiance's symbols. 479 | - https://github.com/RolandasRazma/Heredox/ 480 | - http://www.heredox.com/ 481 | - Hostile Takeover: A release of the Real Time Strategy game Warfare Incorporated. 482 | - https://github.com/spiffcode/hostile-takeover 483 | - hoxChess: Xiangqi (Chinese Chess) with single and multiplayer modes. 484 | - https://github.com/huygithub/hoxChess 485 | - https://itunes.apple.com/app/hoxchess/id363513274 486 | - iLabyrinth: Escape the labyrinth by following limited paths. 🔥 487 | - https://github.com/RolandasRazma/iLabyrinth 488 | - littlego: Play the game of Go on the iPhone or iPad 489 | - https://github.com/herzbube/littlego 490 | - Mission999 491 | - https://github.com/whunmr/Mission999 492 | - https://itunes.apple.com/app/mission-999/id1036686316 493 | - MUDRammer: MUD Client for iPhone and iPad 494 | - https://github.com/splinesoft/MUDRammer 495 | - https://itunes.apple.com/app/mudrammer-a-modern-mud-client/id597157072 496 | - My First Memory: Introduction to iOS & Swift / memory game implementation fetching images from Instagram 🔶 497 | - https://github.com/Sajjon/SwiftIntro 498 | - Neocom for EVE Online: The character management tool for EveOnline MMORG. 499 | - https://github.com/mrdepth/Neocom 500 | - https://itunes.apple.com/app/eveuniverse/id418895101 501 | - Orbit7: Game created in SpriteKit 🔶 502 | - https://github.com/Mav3r1ck/Orbit7 503 | - Pterodactyl Attack: Blast your way through waves of pterodactyls. Also has a detailed writeup on how it's made. 504 | - https://github.com/shaunlebron/PterodactylAttack 505 | - https://shaunlebron.github.io/pteroattack.com/ 506 | - https://itunes.apple.com/app/pterodactyl-attack/id786862892 507 | - Sakura Fly: Action game created in SpriteKit 508 | - https://github.com/l800891/Sakura-Fly 509 | - https://itunes.apple.com/app/sakura-fly/id1019023051 510 | - SaveTheDot: UIViewPropertyAnimator experiment where you have to escape from the squares 🔥🔥 511 | - https://github.com/JakeLin/SaveTheDot 512 | - Scary Flight: Just another yet FlappyBird-style game 513 | - https://github.com/EvgenyKarkan/ScaryFlight 514 | - https://itunes.apple.com/app/scary-flight/id824428528 515 | - SceneKitFrogger 🔶 516 | - https://github.com/devindazzle/SceneKitFrogger 517 | - SHMUP: 3D multiplatform game written primarily in C 🔥 518 | - https://github.com/fabiensanglard/Shmup 519 | - http://fabiensanglard.net/shmup/ 520 | - https://itunes.apple.com/app/shmup/id337663605 521 | - Skeleton Key: A puzzle game where you must shift keys around a board to unlock treasure chests. 🔥 522 | - https://github.com/insurgentgames/Skeleton-Key-iOS 523 | - Spare Parts: Simple 2D point and line physics using Verlet integration 524 | - https://github.com/adamwulf/spare-parts-app 525 | - https://itunes.apple.com/app/spare-parts/id981297199 526 | - Stick-Hero-Swift: Universal iOS Game using Swift and iOS SpriteKit 🔶🔥🔥 527 | - https://github.com/phpmaple/Stick-Hero-Swift 528 | - teh internets: Pilot a rolfcopter to collect lolcats, dodge popups, feed trolls cheezburgers and more in this side-scrolling arcade shooter. 529 | - https://github.com/insurgentgames/teh-internets 530 | - Wizard War: Cast spells in single or multiplayer wizard duels. 🔥🔥🔥 531 | - https://github.com/seanhess/wizardwar 532 | - Wolfenstein 3D: Wolfenstein 3D for iOS 🔥🔥 533 | - https://github.com/id-Software/Wolf3D-iOS 534 | - https://itunes.apple.com/app/wolfenstein-3d-classic-platinum/id309470478 535 | - XPilot: An iPhone port of the classic XPilot game. 536 | - http://7b5labs.com/xpilot.git/ 537 | - http://7b5labs.com/xpilotiphone 538 | - https://itunes.apple.com/app/id322114791 539 | 540 | ### Emulators 541 | 542 | [back to top](#readme) 543 | 544 | - ActiveGS: Apple II/IIGS Emulator with in-app game browser, mFi and iCade controller support 545 | - https://github.com/ogoguel/activegs-ios 546 | - DOSPad: DOSBox 547 | - https://github.com/litchie/dospad 548 | - iUAE: Commodore Amiga emulator, based on UAE 549 | - https://github.com/emufreak/iAmiga 550 | - MAME4iOS: MAME frontend 551 | - https://github.com/yoshisuga/MAME4iOS 552 | - Mini vMac: Early 68K Macintosh emulator 553 | - https://github.com/zydeco/minivmac4ios 554 | - https://namedfork.net/minivmac/ 555 | - nds4ios: Nintendo DS emulator, port of DeSmuME 556 | - https://github.com/raaxis/nds4ios 557 | - PPSSPP: PSP emulator 🔥🔥🔥🔥🔥 558 | - https://github.com/hrydgard/ppsspp 559 | - Provenance: Emulators frontend supporting Sega Genesis, SNES, NES, GB/GBC, & more 🔥🔥🔥🔥🔥 560 | - https://github.com/jasarien/Provenance 561 | - RetroArch: The most comprehensive emulator frontend with support for systems such as NES, SNES, Gameboy, Sega Master System, Genesis, Playstation, N64, Atari Lynx and many others 🔥🔥🔥🔥 562 | - https://github.com/libretro/RetroArch 563 | 564 | ## Health 565 | 566 | [back to top](#readme) 567 | 568 | - Abby's Cycle: A HealthKit powered menstrual cycle tracker 🔶 569 | - https://github.com/jc4p/abby-healthkit 570 | - Arex: Reminders for taking your medications 🔶 571 | - https://github.com/a2/arex-7 572 | - CaseAssistant: Cases recording, study, and sharing for ophthalmologist 🔶🇨🇳🔥 573 | - https://github.com/herrkaefer/CaseAssistant 574 | - https://itunes.apple.com/app/id1003007080 575 | - Depressed: Test if you are depressed 🔶 576 | - https://github.com/DerLobi/Depressed 577 | - https://itunes.apple.com/app/depressed/id1062594092 578 | - HealthKit~Swift: Sample app for Apple HealthKit 🔶 579 | - https://github.com/Darktt/HealthKit-Swift 580 | - Jim: Track your gym workouts 🔶 581 | - https://github.com/kylejm/Jim 582 | - LogU: A Strength Logger is a simple logging application for strength athletes. 🔶 583 | - https://github.com/brettalcox/logU-swift 584 | - https://itunes.apple.com/app/logu-a-strength-logger/id1084487510 585 | - rTracker: A generic, customizable personal data tracker 586 | - https://github.com/rob-miller/rTracker 587 | - https://itunes.apple.com/app/rtracker-track-it-all-your-way/id486541371 588 | - Speak: AAC & Speech Therapy 589 | - https://github.com/raynesio/speakability 590 | - https://itunes.apple.com/app/speakability/id784509467 591 | 592 | ### ResearchKit 593 | 594 | [back to top](#readme) 595 | 596 | - AsthmaHealth: ResearchKit app studying Asthma 597 | - https://github.com/ResearchKit/AsthmaHealth 598 | - https://itunes.apple.com/app/asthma-health-by-mount-sinai/id972625668 599 | - Colorblind: ResearchKit app built in swift in order to provide an easy test for colorblind people. 🔶 600 | - https://github.com/boostcode/ResearchKit-ColorBlind 601 | - https://itunes.apple.com/app/colorblind-app-color-blindness/id1098387412 602 | - GlucoSuccess: ResearchKit app studying Diabetes 603 | - https://github.com/ResearchKit/GlucoSuccess 604 | - https://itunes.apple.com/app/glucosuccess/id972143976 605 | - mPower: ResearchKit app studying Parkinson's disease 606 | - https://github.com/ResearchKit/mPower 607 | - https://itunes.apple.com/app/parkinson-mpower-study-app/id972191200 608 | - MyHeartCounts: Personalized tool that can help you measure daily activity, fitness, and cardiovascular risk 609 | - https://github.com/ResearchKit/MyHeartCounts 610 | - https://itunes.apple.com/app/id972189947 611 | - Share The Journey: ResearchKit app studying Breast Cancer 612 | - https://github.com/ResearchKit/ShareTheJourney 613 | - https://itunes.apple.com/app/share-the-journey/id972180604 614 | 615 | ## Keyboards 616 | 617 | [back to top](#readme) 618 | 619 | - AA-Keyboard: ASCI Art Keyboard 620 | - https://github.com/sonsongithub/AAKeyboard 621 | - https://itunes.apple.com/app/aa-keyboard/id964182815 622 | - ClickWheelKeyboard: Brings back the classic iPod click wheel as a keyboard for iOS 8 623 | - https://github.com/b3ll/ClickWheelKeyboard 624 | - https://itunes.apple.com/app/click-wheel-keyboard/id993111285 625 | - Hodor: Fun Hodor keyboard 🔶 626 | - https://github.com/jonomuller/Hodor-Keyboard 627 | - NaughtyKeyboard: Keyboard that supports The Big List of Naughty Strings 🔶🔥🔥🔥 628 | - https://github.com/Palleas/NaughtyKeyboard 629 | - Slidden: An open source, customizable, iOS keyboard 🔥🔥 630 | - https://github.com/Brimizer/Slidden 631 | 632 | ## Location 633 | 634 | [back to top](#readme) 635 | 636 | - Alarm: Geolocation based alarm app for travelers 🔶🔥 637 | - https://github.com/ChrisChares/swift-alarm 638 | - Cafe 🔶🇨🇳 639 | - https://github.com/flexih/Cafe 640 | - https://itunes.apple.com/app/diao-ke-shi-guang/id440983941 641 | - Closebox: Find the Closest Postbox 642 | - https://github.com/peteog/Closebox 643 | - https://itunes.apple.com/gb/app/closebox-find-closest-postbox/id556364813 644 | - DoctorNearby: Is a healthcare app, which helps you find doctors in your city 645 | - https://github.com/vincezzh/doctornearby-ios 646 | - https://itunes.apple.com/app/doctor-nearby/id1068715113 647 | - Doppio: Finds the nearest Starbucks 🔥🔥🔥 648 | - https://github.com/chroman/Doppio 649 | - EatNow: Get recommendations for nearby restaurants. 650 | - https://github.com/callzhang/Eat-Now 651 | - https://itunes.apple.com/app/eat-now-instant-personalized/id946591471 652 | - GeoTappy: Share your location 653 | - https://github.com/GeoTappy/GeoTappy-iOS 654 | - HopperBus: Timetable for the University of Nottingham Hopper Bus 🔶 655 | - https://github.com/TosinAF/HopperBus-iOS 656 | - iBeaconTasks: iBeacon TODO reminder app based on Parse 🔥 657 | - https://github.com/TomekB/iBeaconTasks 658 | - Locative: Helping you to get the best out of your automated home, geofencing, iBeacons 🔥 659 | - https://github.com/LocativeHQ/Locative-iOS 660 | - https://itunes.apple.com/app/locative/id725198453 661 | - MAPS.ME: Offline maps application with navigation using [OpenStreetMap](https://www.openstreetmap.org) data. 🔥🔥🔥🔥 662 | - https://github.com/mapsme/omim 663 | - https://maps.me/en/home 664 | - https://itunes.apple.com/app/id510623322 665 | - Miataru: A location tracking app where data can be shared over public or private servers. 666 | - https://github.com/miataru/miataru-ios-client 667 | - http://miataru.com/ios/ 668 | - https://itunes.apple.com/app/id717539389 669 | - Moves: Visualize which places you spent the most time at 670 | - https://github.com/neonichu/Places 671 | - Neverlate: Pay-if-U-R-late app using geofences and Venmo API 672 | - https://github.com/ayunav/Neverlate 673 | - OneBusAway: Real-time arrival & schedule information for public transit in Seattle, Atlanta, Tampa, and more 🔥 674 | - https://github.com/OneBusAway/onebusaway-iphone 675 | - https://itunes.apple.com/app/onebusaway/id329380089 676 | - OsmAnd Maps: A map application with access to OpenStreetMaps. 🔥🔥🔥 677 | - https://github.com/osmandapp/Osmand 678 | - http://osmand.net/ 679 | - https://itunes.apple.com/app/id934850257 680 | - OwnTracks: Keep track of your own location, you can build your private location diary or share it with your family and friends. 681 | - https://github.com/owntracks/ios 682 | - ParkenDD: Check the status of several public parking lots in Germany and Switzerland 🔶 683 | - https://github.com/kiliankoe/ParkenDD 684 | - https://itunes.apple.com/app/parkendd/id957165041 685 | - pathlogger: GPS logging application written in Swift 🔶 686 | - https://github.com/eugenpirogoff/pathlogger 687 | - PebCiti: Pebble app to show nearest CitiBike NYC dock 688 | - https://github.com/joemasilotti/PebCiti 689 | - Prey Anti Theft: Track lost or stolen devices and perform actions remotely. 🔥🔥 690 | - https://github.com/prey/prey-ios-client 691 | - https://preyproject.com/ 692 | - https://itunes.apple.com/app/id456755037 693 | - Prey Swift Client: Track lost or stolen devices and perform actions remotely. 🔶 694 | - https://github.com/prey/prey-swift-client 695 | - https://preyproject.com/ 696 | - Smart Traveller (UberGuide): Simple and comfortable way to explore a city using Uber API 🔥🔥 697 | - https://github.com/hACKbUSTER/UberGuide-iOS 698 | - Startups - Mapped In Israel: Discover new startups and locate co-working spaces 699 | - https://github.com/sugarso/MappedInIsrael 700 | - Swift-Walk-Tracker: An open source walk tracking iOS App 🔶 701 | - https://github.com/kevinvanderlugt/Swift-Walk-Tracker 702 | - Traccar Client: Report device location to the server 703 | - https://github.com/tananaev/traccar-client-ios 704 | - https://itunes.apple.com/us/app/traccar-client/id843156974 705 | - Traccar Manager: Track GPS devices on map 706 | - https://github.com/tananaev/traccar-manager-ios 707 | - https://itunes.apple.com/us/app/traccar-manager/id1113966562 708 | - VisitBCN: City guide for Barcelona 709 | - https://github.com/maurovc/visitBCN 710 | - https://itunes.apple.com/app/visitbcn/id904676442 711 | - Wheelmap: Online map for locating wheelchair-accessible places. 712 | - https://github.com/sozialhelden/wheelmap-iphone2 713 | - http://wheelmap.org 714 | - https://itunes.apple.com/app/id399239476 715 | 716 | ## Media 717 | 718 | Image, video, audio, reading — [back to top](#readme) 719 | 720 | - 360 VR Player: Universal 360 video player 🔥🔥🔥🔥 721 | - https://github.com/hanton/HTY360Player 722 | - https://itunes.apple.com/app/360-vr-player/id1061464612 723 | - Analog Synth X: Analog Synthesizer Keyboard Music App, created w/ Swift 2 ([code](https://github.com/audiokit/AudioKit/tree/master/Examples/iOS/AnalogSynthX)) 🔶 724 | - http://matthewfecher.com/app-developement/swift-synth/ 725 | - Artsy: The Art World in Your Pocket 🔥🔥🔥🔥 726 | - https://github.com/artsy/eigen 727 | - https://itunes.apple.com/app/artsy-art-world-in-your-pocket/id703796080 728 | - Artsy Folio: Artwork showcase 🔥 729 | - https://github.com/artsy/energy 730 | - https://itunes.apple.com/app/artsy-folio/id504862164 731 | - CollageMaker: Import photos from an Instagram user and make a collage 732 | - https://github.com/Azoft/CollageMaker-iOS 733 | - ColorBlur: Add blur to your photos 734 | - https://github.com/maurovc/ColorBlur 735 | - https://itunes.apple.com/app/id928863510 736 | - ComicFlow: Comic reader for iPad 🔥🔥 737 | - https://github.com/swisspol/ComicFlow 738 | - https://itunes.apple.com/app/comicflow/id409290355 739 | - DoubanFM: douban.fm client for iPhone, using AFN and MPMoviePlayer 🇨🇳🔥🔥 740 | - https://github.com/XVXVXXX/DoubanFM 741 | - DownTube: Download any video from YouTube for offline use 🔶 742 | - https://github.com/MrAdamBoyd/DownTube 743 | - Dunk: Dribbble client 🔶🔥🔥 744 | - https://github.com/naoyashiga/Dunk 745 | - https://itunes.apple.com/app/dunk-for-dribbble/id1003028105 746 | - Eleven: Eleven Player is a simple powerful video player, uses ffmpeg 🔥🔥 747 | - https://github.com/coderyi/Eleven 748 | - https://itunes.apple.com/app/elevenplayer/id1033773648 749 | - EX Player: Watch video from ex.ua 750 | - https://github.com/IGRSoft/exTVPlayer 751 | - Filterpedia: Core Image Filter explorer 🔶🔥🔥🔥🔥 752 | - https://github.com/FlexMonkey/Filterpedia 753 | - Flickr-Search: Simple app which consumes the Flickr Search API 754 | - https://github.com/alikaragoz/Flickr-Search 755 | - FreeStreamer: A low-memory footprint streaming audio player 🔥🔥🔥🔥 756 | - https://github.com/muhku/FreeStreamer 757 | - Inkpad: A vector illustration app. 🔥🔥🔥🔥🔥 758 | - https://github.com/sprang/Inkpad 759 | - Kodi: A popular media player and entertainment hub. 🔥🔥🔥🔥🔥 760 | - https://github.com/xbmc/xbmc 761 | - http://kodi.wiki/view/IOS 762 | - Kodi Remote: A full-featured remote control for Kodi Media Center. 🔥🔥🔥🔥🔥 763 | - https://github.com/xbmc/xbmc 764 | - https://kodi.tv/ 765 | - https://itunes.apple.com/app/id520480364 766 | - KonaBot: unofficial client for konachan.net 🔶 767 | - https://github.com/hkalexling/KonaBot-iOS 768 | - https://itunes.apple.com/app/konabot/id1055716649 769 | - Longboxed: Track the releases of your favorite comics. 770 | - https://github.com/jayhickey/Longboxed-iOS 771 | - https://itunes.apple.com/app/longboxed-comic-tracker/id965045339 772 | - Megabite: Turn a photo of your food into a face 🔥🔥 773 | - https://github.com/AaronRandall/Megabite 774 | - Meme Maker: Create and share memes! 🔶 775 | - https://github.com/MemeMaker/Meme-Maker-iOS 776 | - https://itunes.apple.com/app/id962121383 777 | - MiamiSunglasses: An app that plays the first five seconds of the CSI Miami theme song for on-the-go meme creation. (YEAAAAAAAAAAHH). 🔶 778 | - https://github.com/DeveloperACE/MiamiSunglasses 779 | - movies: Movie info app 🔥🔥🔥 780 | - https://github.com/KMindeguia/movies 781 | - MuPDF: A PDF, XPS/OpenXPS, CBZ and EPUB document viewer. 782 | - http://git.ghostscript.com/?p=mupdf.git;a=summary 783 | - http://mupdf.com/ 784 | - https://itunes.apple.com/app/id482941798 785 | - My First Memory: Introduction to iOS & Swift / memory game implementation fetching images from Instagram 🔶 786 | - https://github.com/Sajjon/SwiftIntro 787 | - OCiney: Movie info app 🔥🔥 788 | - https://github.com/florent37/OCiney-iOS 789 | - https://itunes.apple.com/app/id955480687 790 | - Open Source Selfie Stick: Sync two iOS devices and use one as a remote control for the other's camera! 791 | - https://github.com/RF-Nelson/open-source-selfie-stick 792 | - https://itunes.apple.com/app/id1084487132 793 | - OpenPics: View historical images from multiple remote sources 794 | - https://github.com/pj4533/OpenPics 795 | - PhishOD: Listen to any song from Phish.in and view concert ratings and reviews from phish.net 796 | - https://github.com/alecgorge/PhishOD-iOS 797 | - https://itunes.apple.com/app/phish-on-demand-all-phish/id672139018 798 | - PhotoBrowser: A simple iOS Instagram photo browser 🔶🔥🔥 799 | - https://github.com/MoZhouqi/PhotoBrowser 800 | - Pictograph: Hide messages in images using steganography 🔶 801 | - https://github.com/MrAdamBoyd/Pictograph 802 | - https://itunes.apple.com/us/app/id1051879856 803 | - PopcornTime: PopcornTime movie app 🔶🔥 804 | - https://github.com/danylokostyshyn/popcorntime-ios 805 | - Poppins: House all your favorite GIFs and easily share them with your friends and family 🔶🔥 806 | - https://github.com/thoughtbot/poppins 807 | - https://itunes.apple.com/app/poppins/id978854068 808 | - prankPro: Record a 6 second video while playing prank sounds 🔥🔥 809 | - https://github.com/huijimuhe/prankPro 810 | - projectM: An OpenGl based advanced music visualization program. 811 | - https://sourceforge.net/projects/projectm/ 812 | - http://projectm.sourceforge.net/ 813 | - https://itunes.apple.com/app/id530922227 814 | - Pugs: Simple pug photo viewer 🔶 815 | - https://github.com/soffes/Pugs 816 | - Radio Paradise: A client for [RadioParadise](http://www.radioparadise.com/rp_2.php). 817 | - https://github.com/ilTofa/rposx 818 | - https://www.iltofa.com/rphd/ 819 | - https://itunes.apple.com/app/id663334697 820 | - ReactiveKitten: It's about gifs and cats, example project for Interstellar 🔶 821 | - https://github.com/JensRavens/ReactiveKitten 822 | - RealmVideo: Watch Realm videos and slides on your phone 🔶🔥🔥 823 | - https://github.com/BalestraPatrick/RealmVideo 824 | - Revolved: 3D modelling app for the iPad 🔥🔥🔥 825 | - https://github.com/Ciechan/Revolved 826 | - SoundCloudSwift: SoundCloud client written on Swift 🔶🔥 827 | - https://github.com/pepibumur/SoundCloudSwift 828 | - Swift ASCII Art Generator 🔶🔥 829 | - https://github.com/ijoshsmith/swift-ascii-art 830 | - Swift Radio Pro: Professional Radio Station App, created w/ Swift 2.0 🔶🔥🔥🔥🔥 831 | - https://github.com/swiftcodex/Swift-Radio-Pro 832 | - Swift-Gif: Gif Search 🔶 833 | - https://github.com/pjchavarria/Swift-Gif 834 | - Swifteroid: A manual HDR exposure camera app written in Swift 🔶 835 | - https://github.com/eugenpirogoff/swifteroid 836 | - SwiftFlickrApp: Flickr popular photo viewer 🔶🔥🔥 837 | - https://github.com/synboo/SwiftFlickrApp 838 | - SwiftSpace: CoreMotion Controlled Drawing in 3D Space 🔶 839 | - https://github.com/FlexMonkey/SwiftSpace 840 | - Tagger: Tagger helps you increase the number of Instagram or Flickr followers and likes on your pictures. 🔶 841 | - https://github.com/vanyaland/Tagger 842 | - TechTavta: Keep track of all events for Techtatva 2015 843 | - https://github.com/LUGM/TechTatva-15 844 | - https://itunes.apple.com/app/techtatva15/id922178880 845 | - Textbook: textbooks from People's Education Press in China 🔶🇨🇳 846 | - https://github.com/JohnWong/textbook 847 | - https://itunes.apple.com/app/ke-ben/id993244460 848 | - That Movie With: Find common movies among actors 849 | - https://github.com/jayhickey/thatmoviewith 850 | - https://itunes.apple.com/app/that-movie-with/id892972135 851 | - Upupu: Simple camera app that can backup pictures on a WebDAV server or Dropbox 852 | - https://github.com/xcoo/upupu 853 | - https://itunes.apple.com/app/upupu/id508401854 854 | - VLC: Media Player 🔥🔥🔥🔥 855 | - https://github.com/videolan/vlc 856 | - https://www.videolan.org/ 857 | - https://itunes.apple.com/app/vlc-for-ios/id650377962 858 | - VoiceMemos: Universal audio recorder app 🔶🔥🔥 859 | - https://github.com/MoZhouqi/VoiceMemos 860 | - xkcd: iPhone app 861 | - https://github.com/paulrehkugler/xkcd 862 | - https://itunes.apple.com/app/xkcd/id303688284 863 | - xkcd Open Source: An xkcd Comic Reader 🔥 864 | - https://github.com/mamaral/xkcd-Open-Source 865 | - https://itunes.apple.com/app/xkcd-open-source/id995811425 866 | - ZBar Barcode Reader: A comprehensive barcode reader. 867 | - https://sourceforge.net/projects/zbar/ 868 | - http://zbar.sourceforge.net/ 869 | - https://itunes.apple.com/app/id344957305 870 | 871 | ## News 872 | 873 | [back to top](#readme) 874 | 875 | - American Chronicle: Search Chronicling America's collection of digitized U.S. newspapers 876 | - https://github.com/ryanipete/AmericanChronicle 877 | - http://ryanipete.com/AmericanChronicle/ 878 | - https://itunes.apple.com/app/id1092988367 879 | - Designer News App 🔶🔥🔥🔥🔥 880 | - https://github.com/MengTo/DesignerNewsApp 881 | - https://itunes.apple.com/app/designer-news-app/id879990495 882 | - Feeds4U: Well architected RSS reader 🔶 883 | - https://github.com/EvgenyKarkan/Feeds4U 884 | - https://itunes.apple.com/app/feeds4u/id1038456442 885 | - GrinnellEvents: Grinnell Events gathers all events on campus, and lists them so you can see what's happening 886 | - https://github.com/kvnbautista/Grinnell-Events-iOS 887 | - https://itunes.apple.com/app/grinnell-events/id924312300 888 | - NirZhihuDaily2.0 🇨🇳🔥🔥🔥🔥 889 | - https://github.com/zpz1237/NirZhihuDaily2.0 890 | - Reddit: Reddit news app 🔶 891 | - https://github.com/amitburst/reddit-demo 892 | - RSSRead: A RSS reader with offline feature 🇨🇳🔥🔥🔥 893 | - https://github.com/ming1016/RSSRead 894 | - https://itunes.apple.com/app/yi-yue-rss-li-xian-xin-wen-yue-du/id850246364 895 | - TabDump: TabDump news app 896 | - https://github.com/dkhamsing/TabDump 897 | - The Oakland Post: App for student-run newspaper at Oakland University in Rochester, Michigan 🔶🔥🔥 898 | - https://github.com/aclissold/the-oakland-post 899 | - https://itunes.apple.com/app/oakland-post/id931152313 900 | - v2ex: An iOS client for the technical and creative website v2ex.com 🇨🇳🔥🔥🔥🔥 901 | - https://github.com/singro/v2ex 902 | - https://itunes.apple.com/app/v2ex-chuang-yi-gong-zuo-zhe/id898181535 903 | 904 | ### Hacker News 905 | 906 | [back to top](#readme) 907 | 908 | - Hacker News Client: Firebase API-Based iOS Reader (Firebase) 🔥🔥 909 | - https://github.com/bonzoq/hniosreader 910 | - https://itunes.apple.com/app/hacker-news-client/id939454231 911 | - HackerNews 🔶🔥🔥🔥 912 | - https://github.com/amitburst/HackerNews 913 | - HackerNews (Y): Built using pure Objective-C with official HN API (uses Firebase and Fabric) 914 | - https://github.com/vetri02/HackerNews 915 | - https://itunes.apple.com/app/hacker-news-y/id1027140113 916 | - Hackers 🔶🔥🔥 917 | - https://github.com/weiran/Hackers 918 | - HN Reader: Hacker News Reader 🔶🔥🔥🔥🔥 919 | - https://github.com/Dimillian/SwiftHN 920 | - https://itunes.apple.com/app/hn-reader-hacker-news-reader/id919243741 921 | - HN-App 🔶 922 | - https://github.com/NikantVohra/HackerNewsClient-iOS 923 | - https://itunes.apple.com/app/hn-app/id983203003 924 | - news: yc 🔥🔥🔥🔥 925 | - https://github.com/Xuzz/newsyc 926 | - https://itunes.apple.com/app/news-yc/id434787119 927 | - News/YC: Hacker News client with user management, commenting, submitting and themes 🔶🔥🔥🔥 928 | - https://github.com/bennyguitar/News-YC---iPhone 929 | - https://itunes.apple.com/app/news-yc/id592893508 930 | - Simple Reader 🔥 931 | - https://github.com/rnystrom/HackerNewsReader 932 | - https://itunes.apple.com/app/simple-reader-free-open-source/id1000995253 933 | 934 | ## Official 935 | 936 | [back to top](#readme) 937 | 938 | - Awesome Swift iOS App: awesome-swift repository official app 🔶 939 | - https://github.com/matteocrippa/awesomeSwift-iOS-App 940 | - Coding: Official Coding app 🔥🔥🔥🔥 941 | - https://github.com/Coding/Coding-iOS 942 | - https://itunes.apple.com/app/coding/id923676989 943 | - DuckDuckGo: Official DuckDuckGo app 🔥 944 | - https://github.com/duckduckgo/ios 945 | - https://itunes.apple.com/app/duckduckgo-search-stories/id663592361 946 | - Firefox: Official Firefox app 🔶🔥🔥🔥🔥🔥 947 | - https://github.com/mozilla/firefox-ios 948 | - https://itunes.apple.com/app/firefox-web-browser/id989804926 949 | - Kodi: A popular media player and entertainment hub. 🔥🔥🔥🔥🔥 950 | - https://github.com/xbmc/xbmc 951 | - http://kodi.wiki/view/IOS 952 | - Kodi Remote: A full-featured remote control for Kodi Media Center. 🔥🔥🔥🔥🔥 953 | - https://github.com/xbmc/xbmc 954 | - https://kodi.tv/ 955 | - https://itunes.apple.com/app/id520480364 956 | - Radio Paradise: A client for [RadioParadise](http://www.radioparadise.com/rp_2.php). 957 | - https://github.com/ilTofa/rposx 958 | - https://www.iltofa.com/rphd/ 959 | - https://itunes.apple.com/app/id663334697 960 | - Scholars of WWDC: The official app of the WWDC Scholarship Recipients 🔶 961 | - https://github.com/WWDCScholars/WWDCScholars-iOS 962 | - http://wwdcscholars.com/ 963 | - https://itunes.apple.com/app/scholars-of-wwdc/id999731893 964 | - VLC: Media Player 🔥🔥🔥🔥 965 | - https://github.com/videolan/vlc 966 | - https://www.videolan.org/ 967 | - https://itunes.apple.com/app/vlc-for-ios/id650377962 968 | - WhiteHouse: Official White House app 🔥🔥🔥 969 | - https://github.com/WhiteHouse/wh-app-ios 970 | - https://itunes.apple.com/app/the-white-house/id350190807 971 | - Wikipedia: Official Wikipedia app 🔥🔥🔥 972 | - https://github.com/wikimedia/wikipedia-ios 973 | - https://itunes.apple.com/app/wikipedia-mobile/id324715238 974 | - WordPress: Official WordPress app 🔥🔥🔥🔥 975 | - https://github.com/wordpress-mobile/WordPress-iOS 976 | - https://itunes.apple.com/app/wordpress/id335703880 977 | 978 | ## Sample 979 | 980 | [back to top](#readme) 981 | 982 | - Apple Developer Library 983 | - https://developer.apple.com/library/ios/navigation/#section=Resource%20Types&topic=Sample%20Code 984 | - Apple WWDC 2015: Code samples from WWDC 2015 985 | - https://developer.apple.com/sample-code/wwdc/2015/ 986 | - Cannonball: Fun way to create and share stories and poems using Fabric 🔶🔥🔥 987 | - https://github.com/twitterdev/cannonball-ios 988 | - https://itunes.apple.com/app/cannonball-magnetic-poetry/id929750075 989 | - CloudKit in Objective-C 🔥 990 | - https://github.com/Yalantis/CloudKit-Demo.Objective-C 991 | - CloudKit in Swift 🔶🔥 992 | - https://github.com/Yalantis/CloudKit-Demo.Swift 993 | - Federal Data SDK 🔶 994 | - https://github.com/USDepartmentofLabor/Swift-Sample-App 995 | - Furni: Furniture store demo app using Fabric 🔶🔥🔥🔥 996 | - https://github.com/twitterdev/furni-ios 997 | - HomeKit-Demo 🔶🔥🔥 998 | - https://github.com/KhaosT/HomeKit-Demo 999 | - iOS 8 Sampler: Code examples for the new functions in iOS 8 🔥🔥🔥🔥🔥 1000 | - https://github.com/shu223/iOS8-Sampler 1001 | - iOS 9 Sampler: Code examples for the new functions in iOS 9 🔶🔥🔥🔥🔥🔥 1002 | - https://github.com/shu223/iOS-9-Sampler 1003 | - Knock: Use Accelerometer and background mode to create a feature of knocking your phone 1004 | - https://github.com/MatheusCavalca/Knock 1005 | - Layer-Parse: This is a Swift sample app that integrates Layer and Atlas with Parse 🔶🔥 1006 | - https://github.com/kwkhaw/Layer-Parse-iOS-Swift-Example 1007 | - LayerPlayer: Explore the capabilities of Apple's Core Animation API 🔶🔥🔥🔥 1008 | - https://github.com/scotteg/LayerPlayer 1009 | - https://itunes.apple.com/app/layer-player/id949768742 1010 | - LVMC: Multicolumn ListView helper library for Titanium 1011 | - https://github.com/falkolab/LVMC-Demo-Alloy-App 1012 | - OpenShop.io: Ecommerce shopping app 🔥 1013 | - https://github.com/openshopio/openshop.io-ios 1014 | - https://itunes.apple.com/app/id1088689646 1015 | - Polls: iOS Client for Polls API by Apiary 🔶 1016 | - https://github.com/apiaryio/polls-app 1017 | - ReactiveKitten: It's about gifs and cats, example project for Interstellar 🔶 1018 | - https://github.com/JensRavens/ReactiveKitten 1019 | - Reusable Code: Reusable code, written in Swift 🔶🔥🔥🔥🔥🔥 1020 | - https://github.com/carlbutron/Swift 1021 | - RKGist: GitHub Gist app using RestKit 1022 | - https://github.com/RestKit/RKGist 1023 | - SafariAutoLoginTest: Demo showing how to auto-login users in iOS 9 based on Safari cookies 🔶🔥🔥 1024 | - https://github.com/mackuba/SafariAutoLoginTest 1025 | - Starship: A generic API client application using Hyperdrive 🔶 1026 | - https://github.com/kylef/Starship 1027 | - StateRestorationDemo: State preservation and restoration APIs 🔶 1028 | - https://github.com/shagedorn/StateRestorationDemo 1029 | - Swift-Demos: Collection of demos for Swift 🔶🇨🇳🔥🔥🔥🔥 1030 | - https://github.com/Lax/iOS-Swift-Demos 1031 | 1032 | ## Science 1033 | 1034 | [back to top](#readme) 1035 | 1036 | - Molecules: Visualize molecules in 3D. 1037 | - http://www.sunsetlakesoftware.com/molecules 1038 | - https://itunes.apple.com/app/molecules/id284943090 1039 | - NumberPad: An experimental prototype calculator for iPad 1040 | - https://github.com/bridger/NumberPad 1041 | 1042 | ## Security 1043 | 1044 | [back to top](#readme) 1045 | 1046 | - Authenticator: A simple two-factor authentication app with a clean UI. 🔥 1047 | - https://github.com/mattrubin/authenticator 1048 | - https://mattrubin.me/authenticator/ 1049 | - https://itunes.apple.com/app/id766157276 1050 | - Encryptr: A zero-knowledge, cloud-based e-wallet and password manager. 🔥🔥🔥🔥 1051 | - https://github.com/SpiderOak/Encryptr 1052 | - https://spideroak.com/solutions/encryptr 1053 | - https://itunes.apple.com/app/id1066041348 1054 | - FreeOTP Authenticator: Two-Factor Authentication 1055 | - https://fedorahosted.org/freeotp/browser/ios 1056 | - https://itunes.apple.com/app/freeotp/id872559395 1057 | - MasterPassword: Stateless password management solution 🔥🔥🔥 1058 | - https://github.com/Lyndir/MasterPassword 1059 | - https://itunes.apple.com/app/id510296984 1060 | - MiniKeePass: Secure Password Manager 🔥🔥 1061 | - https://github.com/MiniKeePass/MiniKeePass 1062 | - https://itunes.apple.com/app/id451661808 1063 | - Potatso: App that implements Shadowsocks proxy 🔶🇨🇳🔥🔥🔥🔥 1064 | - https://github.com/shadowsocks/Potatso 1065 | - https://itunes.apple.com/app/id1070901416 1066 | - Prey Anti Theft: Track lost or stolen devices and perform actions remotely. 🔥🔥 1067 | - https://github.com/prey/prey-ios-client 1068 | - https://preyproject.com/ 1069 | - https://itunes.apple.com/app/id456755037 1070 | - Prey Swift Client: Track lost or stolen devices and perform actions remotely. 🔶 1071 | - https://github.com/prey/prey-swift-client 1072 | - https://preyproject.com/ 1073 | - SkeletonKey: iPhone password manager with Dropbox 1074 | - https://github.com/chrishulbert/SkeletonKey 1075 | - https://itunes.apple.com/app/skeleton-key-password-manager/id513648119 1076 | - ZeroStore: password storage without the storage 1077 | - https://github.com/kylebshr/zerostore-ios 1078 | 1079 | ## Social 1080 | 1081 | [back to top](#readme) 1082 | 1083 | - Aozora: Discover and track anime 🔶 1084 | - https://github.com/opensourceios/Aozora 1085 | - https://itunes.apple.com/app/aozora-anime-community-track/id1017433045 1086 | - Ello: Ello is the Creators Network 🔶🔥🔥 1087 | - https://github.com/ello/ello-ios 1088 | - https://itunes.apple.com/app/ello/id953614327 1089 | - Minds Mobile App: An encrypted social network. 🔥 1090 | - https://github.com/Minds/mobile 1091 | - https://www.minds.com/ 1092 | - https://itunes.apple.com/app/id961771928 1093 | - Peggsite: App for sharing a social board 1094 | - https://github.com/jenduf/GenericSocialApp 1095 | - https://itunes.apple.com/app/peggsite/id938445951 1096 | - StreetMusicMap: Is a collaborative global community that connects street musicians, fans and videomakers. 1097 | - https://github.com/henriquevelloso/StreetMusicMap 1098 | - https://itunes.apple.com/app/street-music-map/id980068735 1099 | - Yep: Discover talent and build something together 🔶🔥🔥🔥🔥🔥 1100 | - https://github.com/CatchChat/Yep 1101 | - https://itunes.apple.com/app/yep-meet-genius/id983891256 1102 | 1103 | ## Tasks 1104 | 1105 | [back to top](#readme) 1106 | 1107 | - 1Trackr: Digitally log in your community service hours onto the cloud 1108 | - https://github.com/JerryHDev/1Trackr 1109 | - https://itunes.apple.com/app/1trackr-service-hour-tracking/id1072273630 1110 | - CloudKit-To-Do-List: Store & retrieve tasks using CloudKit 🔶 1111 | - https://github.com/anthonygeranio/CloudKit-To-Do-List 1112 | - Habitica: A client for Habitica, a habit building and productivity app 1113 | - https://github.com/HabitRPG/habitrpg-ios 1114 | - https://habitica.com/static/front 1115 | - https://itunes.apple.com/app/id994882113 1116 | - MyAwesomeChecklist 🔶 1117 | - https://github.com/imod/MyAwesomeChecklist 1118 | - RealmToDo: A small todo list with Realm integration 🔶 1119 | - https://github.com/pietbrauer/RealmToDo 1120 | - Send To Me: Share content to your email with a single tap. 🔶 1121 | - https://github.com/PiXeL16/SendToMe 1122 | - https://itunes.apple.com/app/id1100027787 1123 | - Swift Off: Firebase powered to do app built in Swift, includes tutorial 🔶 1124 | - https://github.com/goprimer/swift-off-todo 1125 | - Task Coach: A simple toto manager designed for composite tasks. 1126 | - https://sourceforge.net/projects/taskcoach/ 1127 | - http://taskcoach.org/ 1128 | - https://itunes.apple.com/app/task-coach/id311403563 1129 | - Tinylog: A minimal iPhone/iPad TODO app 🔶 1130 | - https://github.com/binarylevel/Tinylog-iOS 1131 | - https://itunes.apple.com/app/tinylog/id799267191 1132 | - Todo: A todo list app written in Swift 🔶🔥 1133 | - https://github.com/JakeLin/Todo 1134 | - Todo.txt: If you have a file called todo.txt on your computer right now, you're in the right place 🔥🔥 1135 | - https://github.com/ginatrapani/todo.txt-ios 1136 | - https://itunes.apple.com/app/todo.txt-touch/id491342186 1137 | 1138 | ## Weather 1139 | 1140 | [back to top](#readme) 1141 | 1142 | - Lucid Weather Clock: Swift precipitation clock - uses Forecast.io 🔶 1143 | - https://github.com/wrutkowski/Lucid-Weather-Clock 1144 | - Pocket Forecast: Swift weather application for Typhoon 🔶🔥🔥 1145 | - https://github.com/appsquickly/Typhoon-Swift-Example 1146 | - RainMan: Uses Forecast.io 🔶🔥🔥🔥 1147 | - https://github.com/Mav3r1ck/Project-RainMan 1148 | - SmileWeather: Uses Weather Underground & OpenWeatherMap 🔥🔥 1149 | - https://github.com/liu044100/SmileWeather 1150 | - Sol: Uses Weather Underground 🔥🔥🔥🔥 1151 | - https://github.com/comyarzaheri/Sol 1152 | - SwiftWeather 🔶🔥🔥🔥🔥🔥 1153 | - https://github.com/JakeLin/SwiftWeather 1154 | - Tropos: A weather app using ReactiveCocoa and Forecast.io 🔥🔥🔥🔥 1155 | - https://github.com/thoughtbot/Tropos 1156 | - https://itunes.apple.com/app/tropos-weather-forecasts-for/id955209376 1157 | - WeatherApp: Weather app by jsphkhan using React Native 1158 | - https://github.com/jsphkhan/ReactNativeExamples 1159 | - https://github.com/jsphkhan/ReactNativeExamples/tree/master/ios/WeatherApp 1160 | - WeatherMap: Weather around you in a glance, uses OpenWeatherMap 🔶🔥🔥 1161 | - https://github.com/TakefiveInteractive/WeatherMap 1162 | - https://itunes.apple.com/app/weather-map-take-five-interactive/id990141529 1163 | - YoCelsius 🔥🔥🔥🔥 1164 | - https://github.com/YouXianMing/YoCelsius 1165 | - https://itunes.apple.com/app/yocelsius/id967721892 1166 | 1167 | ## Web 1168 | 1169 | [back to top](#readme) 1170 | 1171 | - Kiwix: An offline reader for Wikipedia (and many other websites). 🔶 1172 | - https://github.com/kiwix/iOS 1173 | - http://www.kiwix.org/wiki/Main_Page 1174 | - https://itunes.apple.com/app/id997079563 1175 | - PHPHub: Universal app for PHPHub Forum 🇨🇳🔥🔥🔥 1176 | - https://github.com/Aufree/phphub-ios 1177 | - https://itunes.apple.com/app/phphub-ji-ji-xiang-shang-php/id1052966564 1178 | - ProMonster: Store 🇧🇷 1179 | - https://github.com/usemobile/promonster-ios 1180 | - https://itunes.apple.com/app/promonster/id919649318 1181 | - QiitaCollection: Technical knowledge sharing and collaboration platform 🇯🇵 1182 | - https://github.com/anzfactory/QiitaCollection 1183 | - https://itunes.apple.com/app/kitakore-for-qiita/id973532800 1184 | 1185 | ## Misc 1186 | 1187 | [back to top](#readme) 1188 | 1189 | - A Menjar: Food menu app 🇪🇸 1190 | - https://github.com/maurovc/aMenjar 1191 | - https://itunes.apple.com/app/a-menjar!/id816473131 1192 | - bar: Cocktail menu 🔶 1193 | - https://github.com/soffes/bar 1194 | - Be my eyes: Connect blind people with volunteer helpers via live video chat 🔥🔥 1195 | - https://github.com/bemyeyes/bemyeyes-ios 1196 | - https://itunes.apple.com/app/be-my-eyes-helping-blind-see/id905177575 1197 | - BlogQuest: Alternative Tumblr client 1198 | - https://github.com/irace/BlogQuest 1199 | - Borrowed Books UFGRS: Manage borrowed books at UFRGS using SABI 🔶 1200 | - https://github.com/MatheusCavalca/RenovaLivrosUFRGS 1201 | - CardDecks: Configurable card decks 1202 | - https://github.com/aharren/CardDecks 1203 | - ChineseZodiac 🔶🔥 1204 | - https://github.com/JakeLin/ChineseZodiac 1205 | - Colo: Color themes hunter 1206 | - https://github.com/wongzigii/Colo 1207 | - DeckRocket: Turn your iPhone into a remote for Deckset presentations 🔶🔥🔥 1208 | - https://github.com/jpsim/DeckRocket 1209 | - EmotionNote: Emotion diary choose or take a photo of your face, the app will tell you your emotion 🔶 🔶 1210 | - https://github.com/Yogayu/EmotionNote 1211 | - FreeRDP: An implementation of the Remote Desktop Protocol (RDP). 🔥🔥🔥🔥 1212 | - https://github.com/FreeRDP/FreeRDP 1213 | - http://www.freerdp.com/ 1214 | - GammaThingy: Change screen gamma dynamically 🔥🔥🔥 1215 | - https://github.com/thomasfinch/GammaThingy 1216 | - GoodNight: Change screen gamma dynamically 🔥🔥🔥 1217 | - https://github.com/anthonya1999/GoodNight 1218 | - GreatReader: "Great" PDF reader designed for both iPhone and iPad 🔥🔥 1219 | - https://github.com/semweb/GreatReader 1220 | - https://itunes.apple.com/app/greatreader/id903651112 1221 | - Hidrate: App for smart water bottle 1222 | - https://github.com/mjcuva/Hidrate 1223 | - iContactU: Reminds you to contact people you ought to 🔶🔥 1224 | - https://github.com/rizal72/iContactU 1225 | - https://itunes.apple.com/app/icontactu/id920200100 1226 | - iCopyPasta: Pasteboard feed app 🔶 1227 | - https://github.com/alltheflow/iCopyPasta 1228 | - iGrades: Track your class grades 1229 | - https://github.com/maurovc/iGrades 1230 | - https://itunes.apple.com/app/id816987574 1231 | - Jupp: App with share extension for ADN 🔶 1232 | - https://github.com/dasdom/Jupp 1233 | - https://itunes.apple.com/app/jupp-share-extension-for-app.net/id909926740 1234 | - LibreOffice Remote for Impress: Interact with [LibreOffice](https://www.libreoffice.org/) slideshows remotely. 1235 | - https://cgit.freedesktop.org/libreoffice/impress_remote/ 1236 | - https://itunes.apple.com/app/id806879890 1237 | - LidderbuchApp: Songbook for Luxembourgish Students 🔶🇱🇺 1238 | - https://github.com/AcelLuxembourg/LidderbuchApp 1239 | - https://itunes.apple.com/app/lidderbuch/id997143407 1240 | - Mirror++: Minimalist mirror 🔶 1241 | - https://github.com/nathunsmitty/MirrorPlusPlus 1242 | - my41: HP-41C/CV/CX Microcode emulator 1243 | - https://github.com/mperovic/my41 1244 | - https://itunes.apple.com/app/my41cx/id979041950 1245 | - Onions: Cloud encrypted text storage app 1246 | - https://github.com/onionsapp/Onions-iOS 1247 | - https://itunes.apple.com/app/onions/id687296481 1248 | - Open States: Browse state legislatures 1249 | - https://github.com/sunlightlabs/openstates-ios 1250 | - OpenCB: Interactive chess book reader 1251 | - https://github.com/student-t/OpenCB 1252 | - openHAB: Vendor and technology agnostic home automation. 1253 | - https://github.com/openhab/openhab.ios 1254 | - http://www.openhab.org/ 1255 | - https://itunes.apple.com/app/id492054521 1256 | - OpenIt: Notification widget to launch other apps from the notification center 1257 | - https://github.com/BalestraPatrick/OpenIt 1258 | - ownCloud: File browser and sync for ownCloud file hosting service 🔥🔥 1259 | - https://github.com/owncloud/ios 1260 | - https://itunes.apple.com/app/owncloud/id543672169 1261 | - Phonetic: Add phonetic keys for Chinese names 🔥🔥 1262 | - https://github.com/iAugux/Phonetic 1263 | - Runner-Stats: iPhone app to record running data 1264 | - https://github.com/hukun01/Runner-Stats 1265 | - https://itunes.apple.com/app/runner-stats/id793443821 1266 | - Seafile Pro: A client for Seafile (self-hosted file sharing). 1267 | - https://github.com/haiwen/seafile-iOS 1268 | - https://www.seafile.com/en/home/ 1269 | - https://itunes.apple.com/app/id639202512 1270 | - Swiflytics: See your realtime Google Analytics data 🔶 1271 | - https://github.com/aciidb0mb3r/Swiflytics 1272 | - https://itunes.apple.com/app/swiflytics/id1076165139 1273 | - SwiftBlog: Read the official Apple Swift Blog via RSS 🔶 1274 | - https://github.com/BalestraPatrick/SwiftBlog 1275 | - Tether: Tethering for non-jailbroken iOS Devices over USB 1276 | - https://github.com/chrisballinger/Tether-iOS 1277 | - Themoji: Use Emojis to communicate while traveling 1278 | - https://github.com/themoji/ios 1279 | - https://themoji.me/ 1280 | - TheReservist: Check availability of iPhones 🔶 1281 | - https://github.com/kimar/TheReservist 1282 | - Theseus: Personal analytics tool 🔥🔥🔥 1283 | - https://github.com/lazerwalker/Theseus 1284 | - TrollDrop: AirDrop trollfaces to everyone 1285 | - https://github.com/a2/TrollDrop 1286 | - Vinylogue: Simple Last.fm client 🔥 1287 | - https://github.com/twocentstudios/vinylogue 1288 | - https://itunes.apple.com/app/vinylogue-for-last.fm/id617471119 1289 | - VPN On: Today Widget to turn on VPN 🔶🔥🔥🔥🔥🔥 1290 | - https://github.com/lexrus/VPNOn 1291 | - https://itunes.apple.com/app/vpn-on/id951344279 1292 | - WaniKani: Client app for WaniKani.com site (learn kanji) 🔶 1293 | - https://github.com/haawa799/WaniKani-iOS 1294 | - https://itunes.apple.com/app/wanikani/id1034355141 1295 | - Words: Thesaurus app 1296 | - https://github.com/soffes/words 1297 | - WWDC Students: WWDC scholarship entry apps 🔶🔥 1298 | - https://github.com/wwdc 1299 | - YaleMobile: App for Yale University students 1300 | - https://github.com/kiokoo/YaleMobile 1301 | - https://itunes.apple.com/app/yale-mobile/id497588523 1302 | - Yorkie: This app will help you take care of your dog 1303 | - https://github.com/carlbutron/YorkieApp 1304 | - https://itunes.apple.com/app/Yorkie/id1000836606 1305 | 1306 | ### 3D Touch 1307 | 1308 | [back to top](#readme) 1309 | 1310 | - ForceSketch: Sketching app using 3D Touch 1311 | - https://github.com/FlexMonkey/ForceSketch 1312 | - Plum-O-Meter: 3D Touch Application for Weighing Plums (and other small fruit!) 🔶🔥🔥 1313 | - https://github.com/FlexMonkey/Plum-O-Meter 1314 | 1315 | ### Calendar 1316 | 1317 | [back to top](#readme) 1318 | 1319 | - Malendar: A redesigned calendar app 🔶 1320 | - https://github.com/croossin/Malendar 1321 | - Workdays: Simple iPhone calendar with operating schedule 1322 | - https://github.com/mpak/Workdays 1323 | - https://itunes.apple.com/app/workdays-calendar/id889712978 1324 | 1325 | ### Calculator 1326 | 1327 | [back to top](#readme) 1328 | 1329 | - Calculator: React Native calculator 🔥🔥🔥🔥🔥 1330 | - https://github.com/benoitvallon/react-native-nw-react-calculator 1331 | - Free42: A re-implementation of the HP-42S Calculator and the HP-82240 printer. 1332 | - http://thomasokken.com/free42/download/free42.tgz 1333 | - http://thomasokken.com/free42/ 1334 | - https://itunes.apple.com/app/id337692629 1335 | - NumberPad: An experimental prototype calculator for iPad 1336 | - https://github.com/bridger/NumberPad 1337 | - Round & Split: Tip Calculator 🔶 1338 | - https://github.com/lukhnos/roundandsplit 1339 | - https://itunes.apple.com/app/round-split/id912288737 1340 | 1341 | ### Text 1342 | 1343 | [back to top](#readme) 1344 | 1345 | - Edhita: Text editor 🔶🔥🔥🔥 1346 | - https://github.com/tnantoka/edhita 1347 | - https://itunes.apple.com/app/edhita-open-source-text-editor/id398896655 1348 | - Sentiments: Analyzes text for positive or negative sentiment. 🔶🔥 1349 | - https://github.com/kyleweiner/Sentiments 1350 | - SimpleMemo: Sync notes to EverNote 🔥🔥 1351 | - https://github.com/likumb/SimpleMemo 1352 | - https://itunes.apple.com/app/yi-bian-qian/id1029807896 1353 | - SwiftNote: Simple note taking app with today widget and iCloud syncing 🔶🔥 1354 | - https://github.com/mslathrop/SwiftNote 1355 | 1356 | ### Clock 1357 | 1358 | [back to top](#readme) 1359 | 1360 | - Fibonacc iClock: A clock based off the famous fibonacci sequence. 1361 | - https://github.com/scribblemaniac/Fibonacc-iClock 1362 | - HausClock: Minimal Chess Clock using MVVM and ReactiveCocoa 🔶 1363 | - https://github.com/nottombrown/HausClock 1364 | - Natural Language Clock: Display the time as you would speak it 🔶 1365 | - https://github.com/chadkeck/Natural-Language-Clock 1366 | - Population Clock: Learn about geography and demographics 1367 | - https://github.com/Netfilter-Com/PopulationClock 1368 | - https://itunes.apple.com/app/population-clock-hd/id590689957 1369 | - SwiftTextClock: A Swift version of the beautiful QlockTwo 🔶 1370 | - https://github.com/MichMich/SwiftTextClock 1371 | 1372 | ### Timer 1373 | 1374 | [back to top](#readme) 1375 | 1376 | - Cherry: Mini Pomodoro Timer app 🔶🔥🔥 1377 | - https://github.com/kenshin03/Cherry 1378 | - Coffee Timer 🔶 1379 | - https://github.com/ashfurrow/yourfirstswiftapp 1380 | - Fojusi: Work timer with today extension 🔶🔥🔥 1381 | - https://github.com/dasdom/Tomate 1382 | - https://itunes.apple.com/app/fojusi/id923044693 1383 | - MetricTime: Displays 'Metric Time' for pranking friends on trips to countries that use the metric system. 🔶 1384 | - https://github.com/DeveloperACE/MetricTime 1385 | - TrackMyTime 1386 | - https://github.com/EvgenyKarkan/TrackMyTime 1387 | 1388 | ## Special 1389 | 1390 | [back to top](#readme) 1391 | 1392 | 1393 | ### Appcelerator 1394 | 1395 | [back to top](#readme) 1396 | 1397 | - Tracker 4 Compassion: Track your walk, run or ride 1398 | - https://github.com/fokkezb/tracker 1399 | - https://itunes.apple.com/app/g.o.-tracker-4-compassion/id1100240821 1400 | 1401 | ### Core Data 1402 | 1403 | [back to top](#readme) 1404 | 1405 | - DVD Collection Tracker 1406 | - https://github.com/chrismiles/OrganisingCoreData 1407 | - Nested Lists 🔥 1408 | - https://github.com/objcio/issue-4-full-core-data-application 1409 | - Tagger: Tagger helps you increase the number of Instagram or Flickr followers and likes on your pictures. 🔶 1410 | - https://github.com/vanyaland/Tagger 1411 | - Tasks: Designed to quickly and easily add tasks to your iPhone 🔶 1412 | - https://github.com/mbcrump/TasksForSwiftWithPersistingData 1413 | - https://itunes.apple.com/app/task-application/id960435759 1414 | 1415 | ### Firebase 1416 | 1417 | [back to top](#readme) 1418 | 1419 | - Chaty: Anonymous chat app leveraging Google's Firebase, a NoSQL backend and WebSocket for real time data synching 🔥🔥 1420 | - https://github.com/LunarFlash/Chaty 1421 | - Hacker News Client: Firebase API-Based iOS Reader (Firebase) 🔥🔥 1422 | - https://github.com/bonzoq/hniosreader 1423 | - https://itunes.apple.com/app/hacker-news-client/id939454231 1424 | - HackerNews (Y): Built using pure Objective-C with official HN API (uses Firebase and Fabric) 1425 | - https://github.com/vetri02/HackerNews 1426 | - https://itunes.apple.com/app/hacker-news-y/id1027140113 1427 | - how-much: Simple app to record how much things cost using Parse or Firebase 1428 | - https://github.com/dkhamsing/how-much 1429 | - Swift Off: Firebase powered to do app built in Swift, includes tutorial 🔶 1430 | - https://github.com/goprimer/swift-off-todo 1431 | 1432 | ### [Ionic](http://ionicframework.com/) 1433 | 1434 | [back to top](#readme) 1435 | 1436 | - Minds Mobile App: An encrypted social network. 🔥 1437 | - https://github.com/Minds/mobile 1438 | - https://www.minds.com/ 1439 | - https://itunes.apple.com/app/id961771928 1440 | - Vegan Lists UK: View and collect official/unofficial Vegan food lists 1441 | - https://github.com/dsgriffin/vegan-lists-uk 1442 | - https://itunes.apple.com/app/vegan-lists-uk/id1083273301 1443 | 1444 | ### Parse 1445 | 1446 | [back to top](#readme) 1447 | 1448 | - 2CITY: Find out the coolest things to do in your city 1449 | - https://github.com/2city/2CITY-iOS 1450 | - https://itunes.apple.com/app/2city/id944632470 1451 | - Anypic in Objective-C: Mobile and web app that lets users share photos similar to Instagram 🔥🔥🔥🔥 1452 | - https://github.com/ParsePlatform/Anypic 1453 | - https://itunes.apple.com/app/anypic/id539741538 1454 | - Anypic in Swift 🔶 1455 | - https://github.com/kwkhaw/SwiftAnyPic 1456 | - AnyWall: A fun geolocation app built with Parse 🔥🔥 1457 | - https://github.com/ParsePlatform/AnyWall 1458 | - https://itunes.apple.com/app/anywall/id520955490 1459 | - how-much: Simple app to record how much things cost using Parse or Firebase 1460 | - https://github.com/dkhamsing/how-much 1461 | - iBeaconTasks: iBeacon TODO reminder app based on Parse 🔥 1462 | - https://github.com/TomekB/iBeaconTasks 1463 | - Jim: Track your gym workouts 🔶 1464 | - https://github.com/kylejm/Jim 1465 | - Parse-Challenge-App: iPhone app built using Parse w/ likes, comments, posting images/video 🔥 1466 | - https://github.com/TomekB/Parse-Challenge-App 1467 | - https://itunes.apple.com/app/lets-challenge-me/id944004497 1468 | - ParseStore: Backend provider for selling physical goods using Parse 🔥 1469 | - https://github.com/ParsePlatform/ParseStore 1470 | - https://itunes.apple.com/app/parse-store/id613679907 1471 | - Paws: Building an Instagram-Like App with Parse and Swift 🔶 1472 | - http://www.appcoda.com/instagram-app-parse-swift/ 1473 | - Wizard War: Cast spells in single or multiplayer wizard duels. 🔥🔥🔥 1474 | - https://github.com/seanhess/wizardwar 1475 | 1476 | ### [React Native](http://facebook.github.io/react-native/) 1477 | 1478 | [back to top](#readme) 1479 | 1480 | - 2048: App by Facebook 1481 | - https://github.com/facebook/react-native/tree/master/Examples/2048 1482 | - allyoop: NBA game scores app 🔥🔥🔥 1483 | - https://github.com/wwayne/react-native-nba-app 1484 | - Around Me: Display Instagram photos around your location 1485 | - https://github.com/bgryszko/react-native-example 1486 | - Assemblies: Developer-focused Meetup clone 🔥 1487 | - https://github.com/buildreactnative/assemblies 1488 | - Calculator: React Native calculator 🔥🔥🔥🔥🔥 1489 | - https://github.com/benoitvallon/react-native-nw-react-calculator 1490 | - Currency Converter 1491 | - https://github.com/ashwinpreet/ReactNativeExamples 1492 | - https://github.com/ashwinpreet/ReactNativeExamples/tree/master/ios/CurrencyConverter 1493 | - Den: View houses for sale in the Northwest 🔥🔥 1494 | - https://github.com/asamiller/den 1495 | - Dribbble 🔥🔥🔥🔥 1496 | - https://github.com/catalinmiron/react-native-dribbble-app 1497 | - F8 2016: Official F8 app 🔥🔥🔥🔥🔥 1498 | - https://github.com/fbsamples/f8app 1499 | - Facebook Login 🔥🔥 1500 | - https://github.com/brentvatne/react-native-login 1501 | - Finance: iOS's Stocks app written in React Native 🔥🔥🔥 1502 | - https://github.com/7kfpun/FinanceReactNative 1503 | - Foreign Exchange 1504 | - https://github.com/peralmq/ForeignExchangeApp 1505 | - HackerNews-React-Native 🔥🔥🔥🔥🔥 1506 | - https://github.com/iSimar/HackerNews-React-Native 1507 | - https://itunes.apple.com/app/hacker-news-reader-react-native/id1067161633 1508 | - Iceland Earthquakes 1509 | - https://github.com/paranoida/IcelandEarthquakes 1510 | - iTunes Catalog Search 1511 | - https://github.com/alexissan/ReactNativeWorkshop 1512 | - london-react 1513 | - https://github.com/JoeStanton/london-react 1514 | - Movies: App by Facebook 1515 | - https://github.com/facebook/react-native/tree/master/Examples/Movies 1516 | - newswatch: News app using YouTube playlists 1517 | - https://github.com/bradoyler/newswatch-react-native 1518 | - NortalTechDay: Nortal TechDay 2015 app 🔥 1519 | - https://github.com/mikkoj/NortalTechDay 1520 | - ParseDeveloperDay: Parse 2013 developer conference app 1521 | - https://github.com/ParsePlatform/ParseDeveloperDay 1522 | - PocketNode: Lightweight Node REPL 1523 | - https://github.com/mzabriskie/PocketNode 1524 | - Product Kitty: Product Hunt app 🔥 1525 | - https://github.com/rkho/product-kitty 1526 | - Property Finder 🔥🔥 1527 | - https://github.com/ColinEberhardt/ReactNative-PropertyFinder 1528 | - ReactNativeHackerNews 🔥 1529 | - https://github.com/jsdf/ReactNativeHackerNews 1530 | - RSS Reader 1531 | - https://github.com/christopherdro/react-native-rss-reader 1532 | - Songkick 1533 | - https://github.com/ArnaudRinquin/sk-react-native 1534 | - Spacepics: A small app displaying NASA's Picture of the Day 1535 | - https://github.com/campezzi/react-native-spacepics 1536 | - Sudoku 1537 | - https://github.com/christopherdro/react-native-sudoku 1538 | - TicTacToe: App by Facebook 1539 | - https://github.com/facebook/react-native/tree/master/Examples/TicTacToe 1540 | - To Do List 1541 | - https://github.com/joemaddalone/react-native-todo 1542 | - To Do List (Redux): React Native Todo List app which uses Redux for managing app state 1543 | - https://github.com/uiheros/react-native-redux-todo-list 1544 | - Twitch 1545 | - https://github.com/IFours/react-native-twitch 1546 | - UIExplorer: App by Facebook 1547 | - https://github.com/facebook/react-native/tree/master/Examples/UIExplorer 1548 | - Weather: by JakeLin 1549 | - https://github.com/JakeLin/ReactNativeWeather 1550 | - WeatherApp: Weather app by jsphkhan using React Native 1551 | - https://github.com/jsphkhan/ReactNativeExamples 1552 | - https://github.com/jsphkhan/ReactNativeExamples/tree/master/ios/WeatherApp 1553 | 1554 | ### Reactive Programming 1555 | 1556 | [back to top](#readme) 1557 | 1558 | - ReactiveKitten: It's about gifs and cats, example project for Interstellar 🔶 1559 | - https://github.com/JensRavens/ReactiveKitten 1560 | 1561 | ### [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa) 1562 | 1563 | [back to top](#readme) 1564 | 1565 | - BrewMobile: App for managing the beer brewing process 🔶🔥 1566 | - https://github.com/brewfactory/BrewMobile 1567 | - C-41: Make developing film easier and more reliable by using this simple timer 🔥🔥🔥🔥 1568 | - https://github.com/ashfurrow/C-41 1569 | - https://itunes.apple.com/app/c-41/id789924103 1570 | - GitBucket: GitHub client using MVVM & ReactiveCocoa 🔥🔥🔥🔥🔥 1571 | - https://github.com/leichunfeng/MVVMReactiveCocoa 1572 | - https://itunes.apple.com/app/id961330940 1573 | - GroceryList: iPhone grocery list app, synchronized using GitHub 🔥🔥🔥 1574 | - https://github.com/jspahrsummers/GroceryList 1575 | - HausClock: Minimal Chess Clock using MVVM and ReactiveCocoa 🔶 1576 | - https://github.com/nottombrown/HausClock 1577 | - ReactiveHackerNews: Hacker News reader with Tinder style interface, written in ObjC, uses MVVM & ReactiveCocoa 1578 | - https://github.com/syshen/ReactiveHackerNews 1579 | - https://itunes.apple.com/app/reactive-hacker-news-stay/id969422368 1580 | - ReactiveSwiftFlickrSearch: A Flickr-search app that uses MVVM & ReactiveCocoa 🔶🔥🔥 1581 | - https://github.com/ColinEberhardt/ReactiveSwiftFlickrSearch 1582 | - SimpleAuth: Simple authentication (OAuth for Twitter, Facebook, Instagram, Tumblr and more) 🔥🔥🔥🔥 1583 | - https://github.com/calebd/SimpleAuth 1584 | - SwiftRACGoogleImages: Google image search using RAC 4.0 and Swift 2.1 🔶 1585 | - https://github.com/Adlai-Holler/SwiftRACGoogleImages 1586 | - Tropos: A weather app using ReactiveCocoa and Forecast.io 🔥🔥🔥🔥 1587 | - https://github.com/thoughtbot/Tropos 1588 | - https://itunes.apple.com/app/tropos-weather-forecasts-for/id955209376 1589 | - Wizard War: Cast spells in single or multiplayer wizard duels. 🔥🔥🔥 1590 | - https://github.com/seanhess/wizardwar 1591 | 1592 | ### [RxSwift](https://github.com/ReactiveX/RxSwift) 1593 | 1594 | [back to top](#readme) 1595 | 1596 | - Count It: Never lose the count again. Dead simple App with Apple Watch integration that lets you count anything. 🔶 1597 | - https://github.com/PiXeL16/CountItApp 1598 | - https://itunes.apple.com/app/id1098893335 1599 | - GitHub API Client: GitHub client using MVVM and RxSwift 🔶🔥 1600 | - https://github.com/tailec/boilerplate 1601 | - Kiosk: The Artsy auction kiosk app, uses RxSwift 🔶🔥🔥🔥🔥 1602 | - https://github.com/artsy/eidolon 1603 | - RxMarbles: Interactive diagrams of Rx Observables 🔶 1604 | - https://github.com/RxSwiftCommunity/RxMarbles 1605 | - https://itunes.apple.com/us/app/rxmarbles/id1087272442 1606 | - Tweetometer: See who is tweeting in your timeline 🔶 1607 | - https://github.com/BalestraPatrick/Tweetometer 1608 | 1609 | ### Realm 1610 | 1611 | [back to top](#readme) 1612 | 1613 | - Done: Data sharing between a WatchKit app and its main app using Realm 🔶 1614 | - https://github.com/FancyPixel/done-swift 1615 | - Obědář: Shows daily menu of close restaurants to Czech Technical University 🔶 1616 | - https://github.com/syky27/lunch_guy-ios 1617 | - RealmToDo: A small todo list with Realm integration 🔶 1618 | - https://github.com/pietbrauer/RealmToDo 1619 | 1620 | ### [VIPER](https://mutualmobile.github.io/blog/2013/12/04/viper-introduction/) 1621 | 1622 | [back to top](#readme) 1623 | 1624 | - American Chronicle: Search Chronicling America's collection of digitized U.S. newspapers 1625 | - https://github.com/ryanipete/AmericanChronicle 1626 | - http://ryanipete.com/AmericanChronicle/ 1627 | - https://itunes.apple.com/app/id1092988367 1628 | - Contacts 1629 | - https://github.com/sebastianwr/VIPER-Persons 1630 | - Counter 🔥🔥 1631 | - https://github.com/mutualmobile/Counter 1632 | - EMI Calculator for Home, Personal & Car Loan: Calculate your Equated Monthly instalment (EMI) for Home loan, Housing loan, Car loan & Personal loan 🔶 1633 | - https://github.com/tirupati17/loan-emi-calculator-clean-swift 1634 | - https://itunes.apple.com/app/id1105890730 1635 | - Rambler.Conferences 1636 | - https://github.com/rambler-ios/RamblerConferences 1637 | - To do: A to-do list application in viper. 🔥🔥🔥 1638 | - https://github.com/objcio/issue-13-viper 1639 | - https://www.objc.io/issues/13-architecture/viper/ 1640 | 1641 | ### Xamarin 1642 | 1643 | [back to top](#readme) 1644 | 1645 | - Toggl Timer 🔥 1646 | - https://github.com/toggl/mobile 1647 | - https://itunes.apple.com/app/toggl-timer/id885767775 1648 | 1649 | ## Bonus 1650 | 1651 | See [archive](ARCHIVE.md), [awesome-macOS](https://github.com/iCHAIT/awesome-macOS) and [android-apps](https://github.com/pcqpcq/open-source-android-apps). 1652 | 1653 | ## Thanks 1654 | 1655 | This list was inspired by [awesome-ios](https://github.com/vsouza/awesome-ios) and [awesome-swift](https://github.com/matteocrippa/awesome-swift). Thanks to all the [contributors](https://github.com/dkhamsing/open-source-ios-apps/graphs/contributors) 🎉 1656 | 1657 | ## Contact 1658 | 1659 | - [github.com/dkhamsing](https://github.com/dkhamsing) 1660 | - [twitter.com/dkhamsing](https://twitter.com/dkhamsing) 1661 | --------------------------------------------------------------------------------