Archive
Android Wear Open GL ES 2 Test
I’ve finally got an Android Wear device and It’s the Huawei Watch. At first I wanted the Moto360 2nd gen (for the larger screen) but I was unable to buy it from motorola.com and after several attempts I ended up with a paid order but no watch (money is deposited somewhere and should return after once month of the “purchase”). I’m glad I didn’t end up with a “flat tire” and a pixelated ambient display!
So anyway, I went back to my old app Hexscreen and extracted some code to a separate module then used it in a new Android Wear application and ended up with this nice and interactive test 🙂
Split v2.0 – Going Online
A while ago I made a very small app around the idea of selecting an image, then revealing its details by touching the screen and moving your finger and once you’re happy with the result, you can share the photo to other apps.
Yesterday I published a new version where I changed the design and added the ability for users to sign in\register using a Google account then share what’s being created inside the app so other users can view and like.
In this post I’m going to share some technical details that I found interesting while improving the app and implementing the backend.
Dear Backender (A Rude Open Letter)
This post is the first of a series about the struggle I as an Android applications developer must endure when working with backend developers, designers or other people involved in building a mobile application.
It will contain some points you might not be aware of and some things you can do to make the mobile application developer’s life easier or at the very least not make it harder than it should.
Disclaimer: My personal opinions and preferences might be included in these articles and you’re welcome to correct any incorrect points in the comments below.
If you are a mobile application developer you might also find something useful here especially if you’re just beginning.
So to start, this first article is dedicated to people who write APIs for mobile applications, You the backender and me the app developer are starting from scratch and no previous API exists.
Split!
Introducing my new app called Split.
The app allows you to pick an image then split it into circles to reveal more details
You can create cool photos and save them to your phone or share them to other apps.
Gl Button
I wanted to make something similar to the ripple effect but since product-grade libraries for that specific purpose exist I just ended up experimenting with OpenGL ES2 and here’s the result:
Why did I go with OpenGL instead of a canvas? because shaders :D, with a fragment shader you can get various effects. add post processing and you’ll get even more effects! Here I tried something really simple as shown in the video above.
Hexscreen v1.2
Hello :D, Hexscreen v1.2 is now available!
I fixed some bugs and added some more features:
- Advanced color picker: the old color picker was very simple, it only allowed the user to select a hue. The new one allows the user to customize the colors to the max!.
- Higher quality image support: the older version limits the maximum image width (or height) to 512 pixels. You can now choose images up to 1024 pixels.
- Added a file picker: I made a mistake when I assumed that all Android users have a file browser installed! To deal with that I implemented a simple file picker (and I enjoyed it) and packaged it with the app. Now my Hex File Picker will be listed with any other file browser available on the phone when the user wants to pick a style from a file.
- Improved screen positioning: in this version the hex screen will always be centered in your screen, so hopefully no more empty areas are left.
Issues with some devices:
For some reason some devices couldn’t compile the shaders of the app. No shaders means no app!.
I did modify the shaders for this version and hopefully they will work on those devices too, one problem is that I can’t know if the app is working fine, I can only know that the app is not working well (using ACRA).
So if you have any of those devices please feel free to try the app and tell me of the results:
- LG Google Nexus 4 (Android 4.3)
- Huawei MediaPad 7 Lite (Android 4.0.3)
- Asus Google Nexus 7 (Android 4.3)
- Samsung GT-N7000 (Android 2.3.4)
- Samsung GT-N7100 (Android 4.1.2)
- Samsung GT-I9100 (Android 4.1.2)
- HTC One X (Android 4.2.2)
Get it!:
you can download the app freely from your favorite market:
The app is also coming soon on Opera market.That’s it I guess :D, If you have any questions or comments I’ll be happy to answer 🙂 .
Hexscreen : 3D Live Wallapper for your Android
I’m thrilled to announce my first app on the Google Play!!. The name is Hexscreen 😀 .
I like computer graphics and I like hexagons so why not combine them together 😀 ?.
Hex screen is a 3D screen made up from hexagons, the cool thing about this screen is that hexagons can be animated to give nice effects, hexagons can be rotated, moved and scaled. The cells can display images or colors of your own choice, It supports transparency and multi screen layers
You can check this promo video to see some of the features of the live wallpaper:
My apologies for the low-res recording but I had to sacrifice resolution for frame rate.
Wanna try it? it’s completely free, doesn’t contain ads, and the apk is less than 3MB. I made sure to optimize the app in terms of performance and memory usage.
The live wallpaper works on phones running Android 2.3.3+, works on tablets too :).
The app is also coming soon on Opera market.
It would be nice of you to rate the app, just give it what you think it deserves :). If you need something explained tell me and I’ll be happy to answer.
I still have more ideas for the app but I’m not going to spend more time developing it unless people are interested in it.
If you have anything to discuss please use the comments bellow, I’ll be happy to hear your opinions and answer your questions :).
OpenGL ES 2 for Android: A Quick-Start Guide
So you want to make your first Android game or want to make a live wallpaper or just a simple 3D scene?
On Android, games use OpenGL ES 2 for rendering, which means you’ll have to learn it, even if you want to use a game engine it’s always good to know how stuff works on a low level.
By learning OpenGL ES2, you’ll be also learning WebGL since they both use the same set of functions.
OpenGL ES2 is cross-platform which means once you learn the API on a specific platform you will only need to know some platform-specific details to get your game to the other platforms.
While learning OpenGL ES 2, you will face challenges even if you have a good background in computer graphics! This is where books like OpenGL ES 2 for Android: A Quick-Start Guide shine.
Learning OpenGL ES2 starts with a mountain that you have to climb even if you just want to render a single dot in a 3D world, it gets easier after that 🙂 .
The book has a unique approach which makes it easier to understand the process. Read more…
Fuchs Maps
Sometime ago after I finished my tutorials for Android offline map app I spent some time adding more features to the simple app, I guess I should share the code since many of those features are expected from any map application.
The post here won’t contain detailed explanation about how each feature is implemented since each feature might require it’s own post. Anyway if you’ve been reading my previous tutorials everything here should be straightforward and easy to understand, consider the source code provided here as some sort of raw data that someone might benefit from 🙂 .
This code is built upon the offline version of the app, so it doesn’t have web tiles support and the mapView cannot be created in xml (these can be changed easily by following the previous two tutorials).
The code isn’t perfect either, it does the job though 🙂 .
Here’s the features list:
- Points of interest (POI).
- GPS tracking service.
- Compass.
- Location sharing.
- Map selection at runtime.
- Changing tiles size at runtime.
- Importing\Exporting points and tracks.
- Source code.
The post will contain lots of images so please be cautious :).
Simple Spring Physics
A few weeks ago (during exams period 😛 ) I was playing with spring physics, it turned out to be easy to implement and the results were cool enough for me to write a demo in Android, Microsoft XNA, and Javascript :D.
Before I talk too much, here see the results for yourself, this is the web version : SpringLab Web Version.
Reminds you of World of Goo 😀 ?
I came across this tutorial, from which I learned this lovely vector equation:
F = -k(|x|-d)(x/|x|) - bv
I applied it to 2D springs and it gave amazing results especially when Read more…