I built my first app in Android Studio. I have used IDEs such as Visual Studio, Netbeans, and Eclipse previously. I understand that whenever someone is new to something, there is often a natural aversion to it, but this IDE is complete garbage. Almost nothing is intuitive from a hierarchical menu perspective. I had to take notes so that I could find my Java code and layout after I had created them. I can’t think of anything else that is so poorly designed from a human factors perspective. Why would it not be obvious where the main code would be in the project? I am having a really hard time believing that people who write apps for a living actually use this. This is Google’s “Official” platform. Google is a smart company with really deep pockets. I can’t believe this is what they have come up with – even if it is free to download. Every time I do anything with Android Studio, it seem like it barks a nondescript error that I have to spend 20 minutes looking up on Google. Maybe that’s the purpose – to make people use their search engine more, or maybe they put their ‘B’ team on creating this one.
Anyway, I wrote an app that encrypts text that is typed into to it by means of a 16 character encryption password, or “key”.
The text is typed into the top field, in this case “Peace sells, but who’s buying?” A 16 character Encryption key, “a16 CharacterKey”, in this instance, is entered and then the “Encrypt” button is pressed. The original text becomes jumbled and unreadable. To get the original text back, the user presses the “Decrypt” button the same number of times the “Encrypt” button was pressed. This little app allows messages to be hidden from others. You can copy the jumbled text over to an email or text and send it to a friend. That friend can read the text only if he/she has the app and knows the encryption key. It is a pretty bare-bones app, but it does work really well. The algorithm is basically the same one I used to generate license keys for the DeltaV validation software I wrote. I came up with it based on the principles taught in my NCSU ECE574 Network Security and Encryption course. I did not, however, use any standard encryption method.