Repository navigation
Hyper Browser, a photographer's file manager
I have been working HARD on this app. A good file browser with a solid gallery mode for images handles two birds with one stone. Creating this type of app has been considerably more challenging that I would have originally expected.
My main focus is on the gallery at this time. The file browser works great. But as a photographer I want to ensure the gallery is better than your typical gallery. The idea is to offer true RAW rendering when the user wants it. Browsing the gallery is done the way most galleries work. The RAW files are not really displayed honestly. They look fine, but if you zoom in, it isn't the actual RAW file data. In Hyper Browser, you have the option to toggle RAW reality. You can actually inspect your real RAW data. You can see all the glorious detail without some cheap compression ripping up the photo.
Of course, it renders jpg, gif and png as well. That is the easy part.
It technically works with tiff files. Even HUGE ones, like you would find on the Hubble Space Telescope website. I pushed the app hard by using a particular Hubble photo of the Carina Nebula, a whopping 501 MB tiff!
Yeah, you can't actually DO that in an android app. Not honestly, anyways. Any time you have ever viewed and zoomed in on a 501 MB tiff file on an Android phone you were being lied to. Not only can processing that size of an image exceed the available RAM. At best, some compression scheme has to be employed (like jpg). What you see on the screen should be a bitmap. And what you get is indeed a bitmap. But for huge tiff files, you get a down-sampled bitmap. Once the data hits your GPU in your phone, it is down-sampled. There really is no way around it.
I took a different approach. Rather than doing the down-sample on the back end, you can actually load the raw image data from the tiff file... just in small segments that your phone or tablet can ingest without compressing. So when you toggle the full resolution mode in a tiff file view, it will crop it down to a small segment of the total image. A nice graphical grid shows where you are in the image, using a small thumbnail of the whole image inside the grid. You then can navigate around the image using arrow keys on the screen. You are then zoomed into the image and free to explore all the glorious detail without compression inventing noise.
The downside is that the image you see when just browsing the whole gallery is pretty poor in quality for huge files. It sort of looks like a thumbnail you have zoomed into. It isn't great. I will be working on the compressed version of the tiff that you would come across when just casually browsing. But at least you can toggle full resolution mode and see the detail of the actual bitmap if you need to.
RAW was significantly easier to hammer out. The image you see when you casually browse is pretty close to the RAW full resolution version. I take a LOT of RAW photos and specifically engineered the app to work with the ARW file extension that Sony uses. But it will work with any RAW file type. It just works. In the case of RAW in it's full resolution mode, it does let you zoom in and out because even a hefty RAW file is easy compared to dealing with a real tiff bitmap.
We went with the tile strategy, which is what works for gigapixel images. This made tiff work better. You CAN get a gallery that will show you a pretty approximation of the image. And I will be adding that layer to this app. But if you want to see the truth of an image, you have to crop into little tiles and just look at pieces of an enormous image.
As far as the file browser goes, you get a nice two tree presentation with various tools for file manipulations on the left. At the top you can see which direction the operation will flow towards. For example, if you want a file selected in the left tree to copy to a folder in the right tree, the arrow points right. If you want to reverse it, you can just tap the arrow and whatever is in the right tree will move or copy to the left tree. You can select multiple files or even multiple directories. If the operation you want to perform is illogical, like copying a directory into a file, the app tells you and suggests the reversal in case you just the arrow pointing the wrong way. But it really is quite intuitive and twin-pane tree style file browsing will change how well you work with your device. It makes more sense and gives you more flexibility.
I added the ability to rename files too. It comes in handy. Maybe you don't want to load every image into another app just to 'Save As' to change the name. Just change the name in the file tree view. Simple, fast, and efficient.
I have three themes so far. Light, Dark and Hacker. Hacker is my favorite: light green on flat black. Looks great on OLED, it is clear and easy to read. I do plan to add more themes like an Astro theme where it is red on black. Some people like that for being easy on the eyes at night.
s

The layout is meant to be clean and the operations should be pretty quick. I haven't found any significant lags anywhere. There is a slight 1 second lag for loading a Google Drive into one of the two trees. But that is pretty much inevitable and it works fine. The idea is that Google Drive users can move files to and from their Google Drive to their phone or tablet and even do some major sorting and reorganizing of their Google Drive, something made easy with file tree viewing. You can load your same Google Drive in both panes to shuffle files around the drive to clean it up. Likewise, if you load your device's root folder in both panes, you can move stuff around your phone and get it lean and tidy pretty quick. But having your device's root in one pane and the Google Drive in the other is the intended mode, so you can offload images to the cloud or grab things in your cloud and put them on your device.
Other cloud drives will be added as the app matures. I will probably do Microsoft's One drive next and maybe Dropbox. Actually, Dropbox will probably be easier as I bet Microsoft wants a blood sacrifice to access the root of a One Drive. For now it is just your device, any micro sd card it might have, and Google Drive.
Setup is easy and the app walks you through it. You can change what is presenting a tree at any time. It remembers your last selection if you close the app and reopen it later. You just tap the button above each file tree and it opens up the selector so you can change the directory you want to view.
In theory, the app should handle USB connected drives as well. Micro sd cards and USB devices run through something called SAF, so the picker offers that as an option to the Internal Storage (your device's primary storage) or a Google Drive. I haven't tested this out yet as it isn't really a priority for me.
I will also likely allow for multiple Google Drives to be connected since a lot of us have more than one. At some point, instead of a file tree, the default view will be all drives that you have configured already. That way to switch you just tap the drive you want from a list that generates automatically as you add more drives to the app. Basically, once you access a new device or drive, it would keep track of it in a list for you and you would have a few less steps to switch between what you want to work with than the app currently requires.