|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Open Source Ios Apps||34,031||9 hours ago||cc0-1.0|
|:iphone: Collaborative List of Open-Source iOS Apps|
|Afnetworking||33,351||23,393||2 months ago||60||February 18, 2022||103||mit||Objective-C|
|A delightful networking framework for iOS, macOS, watchOS, and tvOS.|
|Cocoalumberjack||12,916||3,365||2 days ago||57||December 16, 2021||10||bsd-3-clause||Objective-C|
|A fast & simple, yet powerful & flexible logging framework for Mac and iOS|
|Swifterswift||12,298||77||a day ago||40||April 07, 2020||24||mit||Swift|
|A handy collection of more than 500 native Swift extensions to boost your productivity.|
|R.swift||9,031||313||5 days ago||86||October 06, 2021||51||mit||Swift|
|Strong typed, autocompleted resources like images, fonts and segues in Swift projects|
|Samkeychain||5,396||1,050||3 years ago||18||July 26, 2016||41||mit||Objective-C|
|Simple Objective-C wrapper for the keychain that works on Mac and iOS|
|Efqrcode||4,369||16||15 days ago||29||November 21, 2019||18||mit||Swift|
|A better way to operate QR Code in Swift, support iOS, macOS, watchOS and tvOS.|
|Valet||3,815||44||a month ago||43||June 26, 2020||3||apache-2.0||Swift|
|Valet lets you securely store data in the iOS, tvOS, or macOS Keychain without knowing a thing about how the Keychain works. It’s easy. We promise.|
|Swiftsoup||3,764||78||22 days ago||63||June 06, 2022||16||mit||Swift|
|SwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS)|
|Xcglogger||3,683||378||2 years ago||25||February 04, 2020||42||mit||Swift|
|A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.|
Virtual Game Controller (VGC) makes it simple to create software-based controllers for games and other purposes, enabling you to easily control one iOS device with another (or multiple other devices, such as in the case of a tvOS game). The framework wraps Apple's GCController Framework API, making it easy to simulatenously support both your own software-based controllers and hardware-based controllers that conform to the MFi standard, with a single code base. The GCController API supports both reading the values of game controller elements directly (polling) as well as registering to be called when a value changes using a block-based handler. VGC operates the same way and supports all of the features of the GCController API for both software- and hardware-based controllers.
While VGC is typically used to have an iOS device act as a controller for another iOS or tvOS device, it can also be used where two iOS devices act as peers, with a shared game environment presented on each device. In that type of implementation, user inputs through on-screen controls flow through the framework and are processed by the handlers on both devices. VGC supports easy creation of custom element types, including images and Data types, so that game logic such as state can be coordinated between the two devices. This capability is perfect for table-top games with two players, including ARKit games where you want both players to see and act on a common game space.
Important: The framework comes with a rich set of sample apps for iOS, tvOS, and MacOS, including both SceneKit and SprikeKit examples. A considerable amount of documentation appears as comments in the iOS Peripheral and iOS Central sample projects, and using those two projects on seperate devices is the best place to start. Next, consider trying the SceneKitShipDemo, which really gives a feel for how the framework can enhance a game. If you have trouble getting the sample projects to work or any other questions, contact me at [email protected].
VirtualGameController is a drop-in replacement for Apple's Game Controller framework, so it can be easily integrated into existing controller-based games.
VirtualGameController may be useful in the following cases:
Platform-specific framework projects are included in the workspace. A single framework file supports both Peripherals (software-based controllers) and Centrals (that is, your game).
Note that you currently need to
import GameController as well.
See the instructions on the Wiki for utilizing Objective C. ``
Preliminary support is in place for CocoaPods.
In order to integrate using Carthage, add VGC to your Cartfile:
Then use platform-specific commands to create the build products that you need to add to your project:
carthage update --platform iOS carthage update --platform OSX carthage update --platform tvOS carthage update --platform watchOS
The project includes a pair apps that implement most of the available framework features and settings, as well as providing a generally helpful test environment.
NOTE: You cannot run more than one app using simulators at one time because of IP address sharing. Run a Central or Peripheral in a simulator, and use hardware devices to interact.
Peripheral_iOS sample project provides a reference implementation of a software-based game controller. Once you have implemented VGC in your game (Central) you can use the Peripheral_iOS app to test it:
Central_iOS sample project provides a reference implementation of a Central (your game, to which Peripherals connect). It provides a straightforward way of testing your implementation of Peripherals:
Feel free to contact me with any questions either using LinkedIn or [email protected].
VirtualGameController is a wrapper around Apple's Game Controller framework, and so working with hardware controllers with VGC is the same as it is with Apple's Game Controller framework. See the Game Integration section below and the sample projects for additional details.
The MIT License (MIT)
Copyright (c)  [Rob Reuss]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.