-
Notifications
You must be signed in to change notification settings - Fork 75
Google Summer of Code 2017 Ideas List
This is the idea page for Summer of Code 2017 for C4.
If you're interested in applying to our organization for the Summer of Code 2017 we'll have you complete a small mini-project as part of your application.
For us, working on C4 is more than just writing code. Though it is about building a framework that is flexible, modern, and useable by a broad base of people, it is really about designing a platform for creative exploration. To accomplish this, everyone contributes, collaborates, communicates, critiques all in the goal of strengthening C4. So, if you're interested in being a part of our group it would be great if you logged onto our slack channel to see what we've been discussing.
Project Ideas We have listed some general topics that we find interesting. For example, a "physics" is a big project, however within the scope of it you might propose a smaller more concrete project, like: adding physics bodies to C4 elements or integrating C4 animations into SpriteKit.
As you look through our proposed ideas please consider them as starting points for generating your proposals.
###Physics We are really interested in building out a physics component for C4. Over the last few months we have been working with the physics systems in SpriteKit. A major goal for this year will be to figure out the best, most reliable way of merging physics with C4. If this interests you, you could propose a concrete task like: refactoring C4 api so objects conform to UIDynamicItem, or implementing an architecture/pattern/workflow-process for easily adding dynamics to a C4 project.
###Data Visualization C4 is an excellent framework for animation, especially with shapes. Building a data-visualization framework for C4 is a very intriguing direction for one of our next extensions. Architected properly, a new datavis framework backed by C4's animation engine would be a significant contribution. If this interests you, you could propose a concrete task like: data parsing, plotting system, transformations, etc.
###User Interface We are planning to build out custom UI components that can be used as seamlessly as UIKit elements. Already, we have experimented with hacking UISwitch, but we haven't settled yet on the approach we want to take with this User Interface extension. If this interests you, you could propose a concrete task like: defining a pattern and structure that makes it easy to replicate UIKit elements, but does so with C4-style api in mind.
###Examples A major component of C4 is producing examples and documentation to support learning and introducing newcomers to C4. You could propose the creation of a series of examples for which you would be responsible to design, build and document. Your final work would be showcased on the C4 site with attribution and authorship. We suggest 2 short (~2 wks d/b/d), 1 medium (3 weeks d/b/d), and 1 long (~5 weeks d/b/d). Creating examples that push the boundaries of C4 will ultimately lead you to finding bugs and small fixes for you to incorporate directly into the API.
###3D Touch With the new 3D Touch capabilities on iOS it's possible for us to integrate this new interaction type into C4. This project would include determining the best possible approach for exposing 3D Touch values through C4's gesture recognition api. We suggest combining this project with the creation of an in-depth tutorial on working with 3D touch. After integrating your code into C4, you would design/build/document an example that covers all the topics in working with 3D touch.
###Physical Prototyping (e.g. Arduino) It would be incredible to easily interface an iOS device with physical prototying boards, and vice-versa. If you're interested in connecting iOS devices to 3rd party hardware like Arduino, then you should propose a concrete task such as: building an easily initiated connection system between iPhone and Arduino, defining communication protocols between iPhone and Arduino, etc. We welcome proposals for other kinds of hardware as well.
This is the development wiki for the C4 project.