LDS Music for iOS Development
As a community project, LDS Music for iOS relies heavily on volunteer developers to move the work forward. We need volunteers who who are familiar with Objective-C and Swift and can contribute an hour a week. Varying levels of experience are welcome. Here's how you can contribute!
Join the project and fill out the developer application form
You will need an LDS Account, which is the same account used to sign in to other Church websites.
- Go to the Projects page (log in if necessary).
- (If you've never signed up for an LDSTech project before:)
- Follow the link to the Individual Contributor License Agreement (ICLA). Read and agree.
- Click on Profile (on the grey navigation bar below the main navigation). Fill out all required fields on your profile (the ones marked with an asterisk*) and press Save.
- On the Projects page, find the project called LDS Music for iOS (the list is in alphabetical order). Click on the title.
- Near the top of the page there’s a little button that says Join – click it!
By joining, you will automatically be added to the mailing list (hosted by Google Groups). Subscription settings can be changed on the project page.
Next, you will need to fill out the LDS Music iOS Developer Application. This allows us to get an idea of your development background and give you access on GitHub. Send an email to Samuel Bradshaw, the volunteer manager, or Hilton Campbell, the lead developer, if you have questions or if you don't hear back after filling out the form.
Set up your local development environment
- You will need the latest version of Xcode. If you do iOS development, chances are you already have Xcode installed. :)
- We use git for version control and to keep things in sync between GitHub and various contributors. You can use git through a git client like SourceTree (recommended), or via the command line.
- Fork the LDSChurch/LDSMusic-iOS repository (upstream/master) to your own GitHub account (origin/master), then use git (via SourceTree or command line) to clone that fork to your computer. Make sure you can open the app in Xcode and run it in the simulator.
Start contributing code
Our first priority is modernizing the codebase, converting classes to Swift and using the newest APIs. Next, we will switch our focus to improvements and features that will make the app more useful to members around the world.
- Choose a task from the Issues page on GitHub that has the label "starter-task", and assign it to yourself.
- Do a git pull from upstream/master to your local repository to make sure you have the latest code.
- Do really cool coding stuff. After you're done, make sure the app builds and runs in the simulator.
- Do a git commit, then git push to your origin/master fork, then go to your fork on GitHub and create a Pull Request.
- Hilton will review your code for completeness, and make sure that it follows Church code standards and industry standards. You may be asked to make changes – this is a normal part of the process and helps us ensure a consistent, high standard of quality. If changes are requested, make changes on your local repository and push another commit. When everything is resolved, Hilton will merge the pull request. If you are working on multiple tasks, make a separate pull request for each.
Download the newest build of the app
Whenever a pull request is merged, a new build of the app is generated and added to the LDSTech downloads page.
Additional background information
LDS Music is the 3rd most used app published by the Church (after Gospel Library and LDS Tools). For various reasons, LDS Music has fallen on a back burner and hasn't had significant updates for a while. Our first order of business is to modernize the code – converting to the newest APIs, moving things over to Swift, et cetera. We recognize that this first step may not be as exciting as adding new features or fixing visible bugs, but it will form a solid foundation for our work as we move forward. We hope that it will also help you become familiar with the code.
Both Hilton and I have worked for the Church, but the work we do for LDS Music is as volunteers, so we apologize if we're not always able to respond right away. We will be working hard to move the project forward and we appreciate any feedback we get. Both of us love the LDS Music app and believe it has great potential. We also believe strongly in the volunteer community. Each of you has different strengths and experience, and though our contributions may be different, as we serve together we will bless individuals and families around the world.
We have added several "starter tasks" to GitHub. These are small, simple tasks for new volunteers. After you have completed one or two starter tasks, if you feel like you want to move on to something more complex, anything with the label "modernize" is available to claim.
We realize that all of you are volunteers, with varying levels of available time. We would like to encourage volunteers to contribute an hour a week, but even if you're not able to contribute every week, you are still welcome here. If you have more time, of course, we would love additional help.
We'd also love your help sharing this opportunity with others who may be willing to contribute!