Hey future app dev! You want to make an app so follow this. This TuT will cover the very basics of app development, so we will be doing an app which has 3 buttons: Respring, Reboot and uicache and they'll do the actions stated by their names. We will also take the harder route, because it's more fun so we will do this 100% programmatically and in Obj-C. Also note that I heavily explain every little thing in this TuT so it's long.
iOS 8 SDK
Power of reading
Ability to type in characters
This ancient template for Theos: https://iosddl.net/1b23c7c63c6e907f/application.nic.tar
So now that you have your iOS 8 SDK downloaded, you want to make sure it'll be used. So move that fresh SDK into theos/sdks but it won't be used yet. To make it work, make a folder named Unused (or whatever you want) and put all the other SDKs in that folder. Then, move the new template to theos/templates. Now, we need to start the app. To do that open your terminal and type in "cd /path/where/you/want/the/app" and then type in theos. You'll see a bunch of templates so with those eyes of yours locate the new template (iphone/application). There should also be an iphone/application modern one but it doesn't work for me. After just follow the steps of the app. It should look like this:
Now you don't want that app to have a nasty background. Follow these steps to have a sexy one that'll be dynamic and resize to the screen. Results may be ugly or stuff if you use an image which is weirdly sized. I also suggest you to download images that are HD and free using this site: bla.bla.bla. Download the image file and move it to your/app/path/Resources. Basically, the ressources folder is where your app will get it's assets from. The assets could potentially be stores in other files but /Resources is the best one you can use. Rename the image to IamGay.jpg or anything you want (I'll use Background.png). Then, from the RootViewControlller.mm file delete the line where it says self.view.backgroundColor. That's basically a line in the template which will set the background of your app to nasty red. But now, the app doesn't have a background so you need to add one! Add these lines at the place where you deleted the other line:
Huh, what does that mean? It's basically making the image and setting the background to the image you declared. Also, make sure to replace Background.png with the actual name of the image. So now that everything is dandy and ready for action, we'll make a test build! So from the terminal, cd to the path of the project and type in make package. After that, look in the app's folder in packages and install the .deb and respring.
I also want to state, on iPad it will have the "stupid dev look" as I say. It basically will look like this but now worries, we'll fix that.
So now we will start creating the actual action in the app rather than a plain background. We want to start in a text editor for the file RootViewController.mm, then slide your cursor to before the load view function ends (so basically where this "}" is). Return a lot of returns to make space for adding stuff and were all set. To declare the button we'll type this:
Just for your knowledge, I'm making a respring button so that's why it's named springButton. You can obviously change the name to whatever you want so in the next steps be sure to change it if you changed it. This TuT is also 100% Obj-C and 0% XCode so why not explain what that does? Basically you're declaring springButton of type UIButton. Another example of declaration could be NSString *playerName = @"GayKid";. So we're declaring a string named playerName which contains GayKid. All good, next step.
Eesh, that's a complex one, but I'll explain. What you see springButton.frame is basically telling the compiler we're using the frame from our button, which I named springButton. The rest is basically up to you but I'll explain how I made it work. So what I'm doing is using CGRectGetWidth(self.view.bounds) so it gets the width of the screen and I divide it in 4. That's my way of making an app dynamic as it will always get the screen width no matter what device and divide it by 4 to set our button there. The rest (so 348.5) is found by using FLEXible so that's why you need to compile a bunch of times and find the position you want to set your button to. Then, we have the sizing, so I'm using another way of calling the screen width and setting the height at 65. Here's a reference:
Note that the button is not complete so it will probably give errors while compiling and not display the button. We're getting there though. Next step, set title, color and font size.
I won't explain these as much as the other steps because if you can read this text then you can probably figure out what it means. We're also using different methods to call things, but that's just for making you understand Obj-C can use different methods for calling stuff. Next step is making it do an action.
This also terminates the making of our button. The second line doesn't need to be explained but the first yes. What we're doing is basically making the button call a function which I named springUp when the button is touched/tapped. Now if you compile it'll be successful but you can open the app and see a nice crash when you tap the button, that's because we didn't make our function yet so it's calling absolutely nothing. After the first ending bracket "}" Which I told you to write all the steps before before the bracket, we'll go after it now. We want to make a new function so type this in:
That's just making a void named springUp. I wanted the button to respring so I type this
system runs a command and the command is killall -9 SpringBoard. Pretty self explanatory. The function isn't done yet! After that enter "}" so we'll end springUp. Compile, install, open the app and hit the button and a respring occurs. Hooray! This is how we make a button. I'll be making three so just repeat the steps, change the title of the button, change the action of the button and it's position. I won't cover the other buttons because they're basically the same thing.
Nice app, but no one knows who did it! We'll make two text boxes saying "Made by a wandling tiger" and "For iOSGods.com". So start by regoing in your loadview function and add this
That makes a UILabel named credLabel and sets it's position to 21(X) and Screen's Height - 60 for Y. Now we'll add text to the label so to do this step you need to add this:
We're the text from credLabel to Made by a wandling tiger. Now we're going to color our stylish and ergonomic designed label so add this:
The background color is set to clear so that makes no ugly background on the label and we're also setting our text color to white. Noice so now we just need to make it visible:
This snippet also sets the text to a centered position rather than being on the left. After that we just make it visible.
This TuT covered the very basics of app development. If you want to progress more in this domain I suggest you to search online, ask questions and learn Obj-C and Swift. I also open sourced all this project so if you want to see the whole code just download it from
The final package will also be released in the tools section so if you want to try it you can. Here's a screenshot of my final product: