In the last few months, I have been busy with a few iOS freelance projects. Chan Wu – The Audio and Video iOS App Project is just one of them.
Here are the requirements from my client:-
– Have Sign Up and Login.
– Able to Reset and Change Password
– Able to download and play Audio files.
– Able to download and play Video files.
– Support In App Purchase for purchasing the Audio and the Video.
The requirements seem to be quite simple at First. But, I did face some challenges after starting to develop this mobile app. But, I am glad that I am able to solve all the challenges so far.
The Design of the App
A friend of mine has designed the app using Sketch for Mac. I have been using Sketch for more than 1 year and I really love this design tool. Even someone like me, who is not designer, also know how to use the tool. The tool is simple and really easy to use. Here is the screen shot for the simple design:-
Technologies used in this Audio and Video iOS App
For Sign Up and Login API, I am using Parse.com. I have been using Parse for a few mobile applications that I developed. It is very simple to use and it saves a lot of my time – the time that is needed for hosting the server, programming and deploying the server end coding.
Most simple mobile apps do not really need a server. Using the mobile backend as a service provider like Parse.com is already good enough for most simple apps.
The client also does not have to pay extra for hosting a server and also the fee for the extra backend programming work. How cool can that be?
Other than the Sign Up and the Login, I also use Parse API to Reset Password, Change Password and update the In App Purchase content. Parse is able to send an email on your app behalf to the user who forgets his/her password.
For downloading the Audio and Video, I am using the latest AFNetworking 2.5 Framework.
For playing the Audio, I am using AVAudioPlayer. For playing the sample videos on Youtube, I am using XCDYouTubeKit. For playing the videos locally, I am using MPMoviePlayerController.
I am using AutoLayout for this app. In fact, I have been using Autolayout since the release of the XCode 6 beta and I will be using Auto Layout for all the iOS apps that I will develop in the future.
You may check out the auto layout articles that I wrote here:-
1. Basic Auto Layout Tutorial in XCode 6 for iOS 7 and 8
2. Advance Auto Layout Tutorial in XCode 6 for iOS 7 and 8



The screen shots above are taken from both the 3.5 inches and 4 inches iOS devices. The screens are adjusted nicely based on the Auto Layout constraints.
Challenges for this Audio and Video iOS App
One of the First challenges that I encountered was related to downloading the audio/video in the background. If the background task is not keeping active in the background, the downloading process might be suspended by the iOS and the downloaded file will be corrupted.
Luckily, I have done a lot of programming works related to making the background location services active in iOS 7 and 8. With some tweaks of the solution, I actually can make the background downloading of the Audio and Video work perfectly!
Challenge #2: Sometimes when the downloading process could be terminated half way because the user kills the app. So, the file will be corrupted and the user has to download again. To solve this problem, the exact size of each of the audio and video files have to be stored in Parse. Before playing the audio/video, the size of the file has to be checked. If the size does not match, then the file must be corrupted and the user will have to re-download the file again.
Challenge #3: Only one audio is able to play at the same time. I will have to support the function to stop and play the audio file and also change from one audio file to another. There are some small User Interface (touches) like Play Icon and Stop Icon are quite important. They have to be there in order to have the best user experience.



The screen shots above are taken from both the 3.5 inches and 4 inches iOS devices. The screens are adjusted nicely based on the Auto Layout constraints.
Final Words on this Chan Wu – Audio and Video Freelance iOS App Project
I feel happy that I am able to complete this project in less than 3 weeks (part time basis). I learned some new things. This app will be available on the app store soon in both the iOS and Android App store. I will update with the app store links once they are available on the app store.
Leave a Reply