iPhone App: Receive HLS Streaming / In App Purchase


Most of the app's elements are very easy to handle for an experienced iPhone developer, like buttons with sound playing, access to the phone numbers in the iPhone address book and standard screen design (you will be provided with the graphic elements). I think the only noticeable technical points this project contains are

- receiving and playing audio streaming from a remote web server (hls streaming)

- In App Purchase

If you are experienced in the listed points please go to the "Detailed Requirements" section for a complete project description.

## Deliverables

This app is an entertainement app which let a user start a voice-over-ip phone call (don't worry, the backend VOIP stuff isn't part of this project!) and can hear the called person in realtime through his app. The user then can click buttons to send pre-recorded audio clips to that called person. All of the streaming and the phone call stuff is managed by a remote server. The app you build only has to receive the audio stream and sends commands (simple http requests) to the web server when the user click on a button to send a pre-recorded audio file to the phone called person.

That was the general overview and now let us start point by point:

- nice intro logo when starting the app (you will be provided with that logo graphic file)

- the main screen of the app is rather simple and looks like demonstrates on screenshot1 (you find it in the attached zip file). Here a sample of different funny phone call scenarios is listed. Like telling someone that the ordered 20 pizzas are coming a bit later or kind of that. The text modules should be read from a xml file. That makes it easier for later updates

- if the user click on one of the text modules he is forwarded to another screen which is again very simple in design like demonstrated on screenshot2. The difference here is that a audio clip (mp3) is played when the user click on one of that text modules. Which mp3 file should be played when clicked also should be to find in the xml file. By the way: This screen helps the user to listen to the single audio clips before he starts the real voice-over-ip phone call. At the bottom of screenshot2 you can see 5 icons. This icons start playing a certain mp3 clip. Which one for which icon is also to find in the xml file

- in the top of screenshot2 you can see a text field for entering a phone number, right site of it a address book icon and right from that address book icon a phone icon. I need all of that too. So the user can enter a phone number directly into the text field before starting the phone call (if clicking onto the input filed automatically the number keybord opens - screenshot3) with a click to the green phone icon or he click onto the address book icon to open his address book. From the opened address book he can chose any listed person. Then the data set to that person opens. When the user now click on the displayed phone number this phone number is automatically copied and pasted into the phone number input field from screenshot2 and the address book is automatically closed

- if the user click onto the green phone icon a new screen comes up. The elements which are displayed here are depending on previous answers from the web server. Let me describe this screen when the user uses the app the very first time when there still no server request happened before. Have a look to screenshot4 please. I created it for demonstration purposes with a graphic tool. Ignore the german text. Just set placeholders here. At the end of the developement process we can change the text out. The app's user can do 3 free phone calls daily. This is told to him in the very first textline. In the second test line is displayed how many calls for the present day are still available. As the user has just installed the app, of cource all 3 free calls are still remaining. Important is the red button. May be you can animate it a little bit. Kind of glowing. The user is informed that he can activate a "super feature" but he can only use it one single time. Not one time a day, one single time overall. (later he will be informed that he can use it regular if he is doing a in app purchase. What this super feature is doing is that the user can specify any phone number which should be send to the person which is phone called later and which appears on the display of that person's phone. So the user can (but must not) click on that red button before clicking the grey button below to start the call. (this grey button should be a standard iOS control). Let's imagine the user click on the red button. When pressed this button the red button disappear and a form field for entering a phone number appers. (as shown in screenshot5). Only numbers 0..9 are allowed as input. If the user enters any other char a alert box should pop up and inform him about this. Okay, and now we come to the first online activity of our app! To prevent users from entering serious phone numbers from police and kind of that the app should do a online number check when the user click on the start phone button below on the screen. That means: If the user click on the "start phone call" button the app first should call the website [url removed, login to view]{unique_iPhone_device_ID} (in this example the user wants to call the destination number 12345678 and entered as the number which should be displayed on the phone's display of the called number 55555555. Both numbers must be checked first. In the web server database all forbidden numbers are listed. So the web server will give back an answer to the app. If the answer is "0" then both numbers are okay and the phone call can start. If the answer is any other number, like 1 or 8, then the app can find an error meassage in a local xml file. This error message should appear in an alert box. If the user press "okay" in the alert box he is send back to the screen of screenshot2

- now we come to the main thing - the voice over ip phone call! If the number check returns 0 for okay, the phone call starts very simple by calling [url removed, login to view]

The answer of the webserver in the php script [url removed, login to view] will be the hls streaming address. Something like [url removed, login to view]

The app must play the incoming audio signal in realtime. The screen which is appearing to the user is very similar to the one from screenshot2. The difference of course is that screenshot2 is from the sound testing site and now it is the real phone call. But all the text blocks are identical. As you can remember the user also can let play now pre-recorded audio clips to the called person. This is very easy. For example the user click onto the second text block your app calls in the background the web server address [url removed, login to view]

Now the webserver knows which sound clip have to be send to which active stream. So your app must parse the dynamical stream name (here: dke_d334) from the previous webserver answer and send it together with the sound clip id and the id of the joke scenario the user chosed. (if you have a look to screenshot1 you can see that there are a couple of different joke scenarios). Simultanously to this server command to send the chosen audio clip into the chosen stream the app also should play the chosen sound clip directly. So the user can hear as well what he clicked on. You remember that all sound clips are locally on the iPhone available as mp3 files

- the phone call ends automatically after 90 seconds. Then 2 steps are necessary. First the web server must be informed that this phone call ended by calling the website [url removed, login to view]

And second the user is forwarded to a new screen. On this screen is a text block and below of the text block there are some links to In App Purchases. At the very end of this screen one link back to the screen of screenshot1.

- If the user make a In App Purchase the app must inform the webserver about it by calling the website [url removed, login to view]{unique_iPhone_device_ID}

- The quantity of calls a user is doing every day must be counted. So the app can display how many calls are still available in free mode. The webserver will also control this to prevent a user from a simple uninstalling and re-installing the app after 3 calls. ;-)

- The screen as shown on screenshot4 will depend a little on the fact if the user had purchased (and still is owning) coins or not. I will provide you with the different texts to this different cases later.

Wow, that was much of text! But I prefer to be as detailed as possible to give you a most good overview to the project. If you have any questions please to not hesitate to ask me.

And of course I am flexible in the way how to implement this project. My description how to implement it is only one proposal how it could be done.

Best regards


Квалификация: Cocoa, iPhone, Objective C

Показать больше xml tool online, www red point, wow way com, wow to design it logo, wow icons, what to look for ios developer, what to look for in a website developer, what to look for in a web developer, what should knows web developer, what is test scenario, what is project proposal with example, what is in a background check, what is a project proposal with an example, what app can i use to design a logo, website to find developer for logo design, website to design phone cases, Web site developement, website app developer php, web icons best, web icons and design elements

О работодателе:
( 180 отзыв(-а, -ов) ) London, United Kingdom

ID проекта: #2763565

1 фрилансер в среднем готов выполнить эту работу за $430


See private message.

$430.1 USD за 14 дней(-я)
(3 отзывов(-а))