A newbie question.
I am a newcomer to Java/Android (even UI development) .
My test apps look a little drab even though they do what the intend to do (with respect to app functionality).
Apart from Java, what are other technology needed for graphic rich app (oval 3d buttons etc).
PS: I did a lil research on this before coming here and found most of the questions were asked with respect to game development.But I am not interested in game development though.
In my history of making nice looking apps it usually all comes down to positioning the buttons and other things nicely and making custom images for buttons. If you want to simplify some things try using LIBGDX's UI tools. They allow a somewhat simplified way to load in custom images and scale/position them according to screen size.
Related
Before we start: Yes, this question has been asked and answered for similar backgrounds a couple of times, but all extensive answers to this questions I could find are at least 2 years old and game engines come and go.
On top of that I have some specific requirements that I could not find being discussed in any of the posts.
What I want to accomplish is to create a 2D game. I have a background in Java programming and programmedd some simple Android apps (a messenger and stuff like that). I also have very basic C++, C# and JavaScript knowledge as well as OpenGL and building an own 3D engine (university project):
Should run on Android (version 5 or higher) and probably iOS (I haven't done anything with iOS yet so this will be my first project).
Needs some very basic physics for bullets/hit-tests (I can also code this if it's necessary so this more like a soft constraint but I'd prefer the engine or some simple library to do the work for me)
UI-components. Yes, I will need them and many will be text-oriented. Also scrollable components. I have seen many engines lacking these and coding it from scratch can be tedious. Also many engines make it hard to create more complex UIs which I would probably need.
In-App purchases. It would be really nice if wouldn't have to mess around with this too much.
Some nice graphic effects.. Parallax effects, particles (for magic spells, etc)
Communication with a centralized game server.
Notifications in the notification bar (with custom images and texts
Should be able to handle basica animations, play music and videos.
Should be able to integrate with Social media (Facebook and/or Twitter as a minimum). Would be nice to have something like "Like our page on Facebook to receive X coins).
Performance is probably NOT critical - I assume that any game engine fullfilling the other requirements is programmed sanely enough to be fast enough on a modern device.
Should be battle tested, not being abandoned, have a reasonable documentation and community
Rapid development should be possible. This is very important to me as I plan to change the style and other things quite often and let people test and comment the changes.
What I found are basically some different types of engines:
- Engines where one builds a game in a framework and manually adds native code for things the engine does not support, like LibGdx.
- HTML5-only engines that need some 3rd party app-wrappers like phaser + CocoonJS. Some other also provide this, like Kiwi.js.
- Monolithic engines that provide everything (okay only one: Unity).
From all of the engines I have seen I think Unity would fit my needs best, but then again I have no experience whatsoever with it.
What would you suggest?
I suggest you to look at GameMaker: Studio
Here is course on Lynda Learning GameMaker: Studio and GML
I'm building an app to run on ios and android, and using phonegap as the framework. Handling the technical issues is no problem.
But each platform has some UX differences on sizes, where things go, etc. I haven't been able to find any tips, cheatsheets, etc for laying things out on the two platforms. An easy example (it's right at the top) is left justifying versus centering the title, another is supporting a back button from a detail view.
With so much work being done on cross platform development, it seems like someone has to have compiled tips, cheatsheets and other patterns.
The best tip I can give you is this:
Buy an Android and iPhone and use the same apps on both of them on and off. Instagram, Snapchat, etc. and see how those companies handled the issue of having consistent UIs and functionality.
Sometimes things are similar but other times Android/iPhone users will expect different functionality. The only way you will be able to really know what that is is by using both platforms yourself.
Then you can decide accordingly.
I am not aware of any hybrid cross-platform "cheatsheet" because each platform has their own design guidelines.
I am not familiar with creating android apps by any means. However my company is looking to have an app build up. First they would like to have someone design a custom UI for it. However most apps I use at least all generally have the same core UI look/feel which is something we would like to avoid. I have seen apps though that don't even remotely look like the rest. So I am wondering if theres any place to find out what the basic canvas of an android app looks like . Is there any PSD's anywhere for this? Not one hundred percent sure what I am looking for other than concepts at the moment, but we want to know that our concepts are at the least plausible. So if anyone knows any good resources Id be interested to know.
Not PSDs, but you should take a look at the newly launched Android Design site, especially the Building Blocks section to understand what is available out of the box for you. Pretty much all of the controls you can style pretty extensively if you're willing to put the work into it, but have varying degrees of built-in configurable styling flexibility.
Note that while there's something to be said for ingenuity and being able to stand out from the crowd, there's also the flip side of comfort and usability for the user that comes with a familiar look and feel. If you're looking to come up with your own custom controls, etc. and you're not even familiar with creating Android apps, I hope your company is willing to budget a lot of time for the steep learning curve (the learning curve of Android is not so bad, but adding a lot of custom UI on top of that is not trivial for a first project).
ladies and gentlemen!
Very often on my job I meet the following requirement from the client, when developing android applications: "make it look like and iPhone app".
Yes, I know, that the best way is to offer him canonical Android design with all these patterns like dashboard, using menu button etc... But sometimes this is not the case, as instead, I have to make it look and animate just the same. It's frustrating.
Can you guys, please advice me an android library (if there is one) with iOS-like UI elements? Many thanks in advance, I'm looking forward to hearing from you!
To expand on Martyn's comment, which I agree with.
Perhaps there is a great reason why a client would ask for this, but in many cases I bet they might benefit from being challenged on this requirement. If I was presented with this request, I would first ask "Why?". Perhaps they'd answer as follows:
we need a consistent experience across platforms, or
it will be more cost effective to design once and apply to each platform, or
it doesn't matter why, just do it!
Here are some responses for each:
each user will generally have one phone, and won't require the experience on Android to be identical to iPhone - they only care that it works and looks great on their phone. In fact, an Android user would prefer if you used the UI patterns that are more common to the platform, as opposed designing to match iOS. Likewise for an iPhone user.
we have found that having a designer create a set of creative for iOS allows us to pretty much use the creative as-is for Android. Even though Android might have Tabs on top, versus bottom, we are still able to take the backgrounds, button styles, fonts and color schemes from one platform to the next. There will be slight differences, but overall the brand and look should translate well. Here is an example of porting a single creative design across platforms: http://daleburgosdesign.com/
if they answer in this manner, you might want to consider passing on the job. Pixel perfect matching across platforms is tricky aside from the ideas offered in previous answers (OpenGL and the use of a WebView - via Macarse). If the client can't provide good reasoning for this tricky requirement, then it might be best to search for your next client.
Not a straight forward answer to your question, but I hope you find it helpful!
There is no iphone UI library for android that I know of. What you can do is, get the iphone GUI psd and redo it for 3 sizes of android (for the 3 size ranges) and use the elements of these psd's to theme your application.
I get these kind of similar requirements. Sometimes it wont be much about the looks but about the navigation flow of the application and how new views or activities are animated. From my experience, there is no easy way to do it. So I end up making a lot of adjustments and hacks to get the job done. And I over bill the client. :)
Btw you could also consider libraries such as Sencha Touch, it will look the same in all phones that use a webkit browser.
AFAIK there are no 'iOS-alike' widget libraries for Android.
Because of this, you could reasonably charge the client more for both development and support, thereby providing an incentive to stick with the standard Android UI design and principles.
There is no library to port iphone views to Android but if you are starting both applications from the scratch you have two possible approach to share views between both platforms.
First one is using WebViews and coding HTML, JS and CSS. This kind of app is called hybrid.
Second one is using openGL. You can do it directly or using a framework like cocos2d-x.
Depending on what you are willing to you should choose what to use.
I have recently completed the development of an iPhone application in phonegap and we are now completing the Android version of the application and I was hoping to turn to the SO community for some answers in best practice for getting your app to look right across every device. My approach was going to be to use sencha.io for all of the images and use em/percentage based flexible layout across the app so it scales based on available screen real estate. Is this approach fair, does anyone
have recommendations for workflow or implementaion?
Thank you in advance,
JN
In order for your app to look the same across all devices, use HTML5 and CSS (which you are already using with PhoneGap, correct?)
You must decide whether or not you want your android app to look like your iPhone app, or if you want it to look differently on a Android app, or if you want it look like your app regardless of platform.
Regardless of what route you take, the key to this to use well written and well formed HTML and CSS. When i say well written, i mean to not have any layout or styling depending on HTML and do all layout and styling with CSS.
From my personal experience, you are on the right track with percentage/em.
As for sencha.io, i have never heard of that. But i personally don't see what that does that you can't do with just CSS and HTML5.
Be sure to test on as many different devices as you can!
As a side note, i would recommend not using many images to help users reduce load times and data usage.