6 Apps for becoming an iOS Power User
Tags: ios, bash, python, github
Published: 2021-06-07 17:41:21

When I first got an iPhone, I wasn't all too interested in using anything like Linux. Nowadays, I tinker with every single device that I own, and my iPhone is no exception. iPhones actually have lots of apps that allow you to be a power user. Today, I will be showing you my top 6 apps that allow me to unlock much more functionality that should be present on iOS devices that Apple does not natively support. As I go down the list, the apps will start getting more and more advanced, requiring more and more knowledge on how to use them.

1. Files
The default file browser. Can do basic zipping, unzipping, moving, and renaming. Will be important later on for apps that allow you to use downloaded files on them.

2. [iZip](https://apps.apple.com/us/app/izip-zip-unzip-unrar-tool/id413971331)
A fully functional file browser that allows for the extraction of many more archive types than the normal Files app. It has a few more features, and it allows you to change file extensions, something that I do not think is possible on the regular files app. You can move files from the normal Files app environment to the iZip environment easily inside of the Files app.

3. [Pretext](https://apps.apple.com/us/app/pretext/id1347707000)
Pretext is a simple, but powerful text editor. It has a nice GUI, and it supports markdown syntax highlighting (useful for those GitHub READMEs). It supports opening any plaintext filetype, and it will open any file extension that you want, meaning you don't need iZip to rename the file extensions.

4. [Pyto](https://apps.apple.com/us/app/pyto-python-3/id1436650069)
This is a Python IDE that actually does have syntax highlighting. It has an interpreter, but from my experience you cannot actually run the files locally without paying, which I will show you how to solve later on with iSH.

5. [CodeHub](https://apps.apple.com/us/app/codehub-a-client-for-github/id707173885)
CodeHub is basically a better version of the GitHub app, which I also recommend having. CodeHub allows you to actually create commits right through the app instead of having to do it in Desktop mode on a web broswer, something that I hate doing. It has a simple built-in text editor, but if you want to write Python scripts, you can easily use Pyto and then copy and paste into the editor and push your commits.

6. [iSH](https://apps.apple.com/us/app/ish-shell/id1436902243)
This one shocked me when I found it. It is a FULLY FEATURED shell based on Alpine Linux, running on Linux kernel version `4.20-69`. And it's not ARM, like I expected - it's x86, meaning it has support for a *lot* of things that you should only really be able to do on computers. It features a package manager called `apk`, allowing you to install packages with `apk add [package]`, and it has a very wide range of packages. Do note, if you are attempting to install pip, you will have to install it manually, which is detailed on the official page for pip. Otherwise, I have not had any issues with the app, besides the fact that I don't think you can use any GUI programs, though I may be wrong. I am looking into installing DWM, which may or may not work. The app has a wide variety of packages you can install, like vim, git, python2, python3, neofetch, wget, sudo, and many more. But you can install other package managers as well. The one that I installed first was pacman, the package manager for arch-based systems. As long as you obtain the necessary dependencies, you can *theoretically* compile any package manager you want, or any program for that matter, if you have the source code (as long as it supports x86 architecture). Just don't get stuck in dependency hell ;).
One of the best things that you can do is actually run things, though. Like I stated before, you can run python scripts, but you can also run real shell scripts, and the holy grail of all mobile computing: compiled x86 executables. With a simple `chmod +x ./[executable]` and `./[executable]`, you can run CLI apps to your heart's content. This means that if a package isn't available, you can just drop the executable into `bin` or `/usr/bin/` and access it at any time. I was able to successfully use the program `gdrive`, a CLI to allow users to manage files on their Google Drive from, obviously, the command line. I have also been able to compile executables from scratch, but do note that it takes quite a long time, and it heats up the phone quite a bit so you may want to have a freezer handy.
A great feature of the app is the ability for a user to manage its file system from the native Files app that came shipped on the phone. All the user has to do is boot up the app, run `mkdir temp`, go to the root area files app, press the button to add more sources, and enable iSH. Then, go back to iSH and run `rm -rf temp` to get rid of the temp folder you created. Now, you can access the iSH file system from the files app, with the default folder that the app boots to being `root`.

iOS might not be as featured of an operating system as Android, and it most certainly is certainly more locked down than. Fortunately, though, if you're like me and don't have much of a choice on what you can use, you still have at least a little bit of control over what *you* want to do rather than only use the small amount of features that Apple allows you (without having to pay them any money, of course).