Non-game mobile development with Unity - android

Recently, I've wondered if a non-game mobile app like Facebook could have been written all in Unity?
I am planning to develop a Social Media app and I am a .Net Backend Web Developer with no iOS/Android background. I especially know to code Objective-C and Java, however I don't have any experience or know-how about designing UI and add some animations to it.
I encountered the platform Unity while I was playing Dead Trigger 2 on my tablet. When I learnt that Unity is a Cross-Platform Game Development Environment, I tried playing Dead Trigger 2 on my phone (Note 3) and friend's iPhone. Works perfect. Then, I saw it has something to do with Facebook and shocked when realized that I am able to play the same game in a Web Browser on Facebook. That's amazing...
Since I am convinced that such a 3D game can be developed in such a way, I have the idea to develop a normal non-game mobile app with Unity. If the Dead Trigger Team can draw such zombies in 3D, I think it would not be so hard for me to draw a sliding-menu in 2D mode that magically works in all mobile platforms including Windows Phone. I did, and saw that any kind of animation is done with drag-drop editors and C# scripting, wooww. So, Unity fullfills my lack of UI coding in mobile platforms...
The question is, how about some backend stuff? Sending web requests? Multi-threading? async/await stuff we have in .Net? Periodically checking something from a server in background? Integrating the data with the UI?
Would you go for developing a Facebook like app all in Unity?
Thanks

If you want C# on android, there is xamarin studio. I don't think that unity is ideal for such an application. You can use it, but if you don't need anything graphical, the overhead of the engine is not worth it. If you don't care about performance (think it more like power consumption, because it's not going to be slow or anything, just way more power hungry than a simple web browser), as the FB app obviously doesn't, then you could use unity.
What you are describing, already exists. It's called the web. It's as cross platform as it gets. And there are multiple ways to convert a web app (written in html5 technologies) to a "native" mobile app, both for iOS and android. I'd recommend that you followed this road, and not unity.

In short,unity is a game engine and as such it is designed for high performance. This means that even the lightest UI built can take up a lot of CPU and in turn - a lot of battery, which is kind of precious on a mobile device.
As stated here unity doesn't seem to handle threads very well, though Im sure this is something that can be worked out
Anyway I believe that it is not the platform that answers your needs in this case.

Yes, you can develop a non-game app on Unity. But, there are fallbacks, Unity will be a bit hard for developing the UI navigation part of the application. A social media like Facebook is more complex than just graphics. There is a lot of backend development. I don't think it will be too simple compared to coding it, but of course, you can do it. You should create non-game apps when you have to incorporate advanced graphics and/or physics.

Related

Android-to-web app-to-iPhone, without Xcode

I have released a native Android application, which I built in Android Studio. After a rocky start, it is now doing alright in the PlayStore.
I hope to release an iPhone version soon, and I am considering my options.
My general approach will be redeveloping the project as a web application using Ruby on Rails, then converting that to an iPhone app somehow.
I am writing to ask more about this final step. What cost-effective ways are there to convert a web application to iPhone format?
I am aware I will need $99 for the Apple developer programme, and I would like to keep my overall costs close to that amount. I had thought of using PhoneGap. Are there any extra steps between PhoneGap and publishing on the App store?
Extra information, which might help contextualise my situation:
I do not have an Apple devices or software for development or testing. I’m not the Prince of Monaco, so I do not intend to spend on these things anytime soon. My app is called Victoriana, and it is a Choose-Your-Own-Adventure/ text adventure game. Pretty basic, really.
This is my first real project, and I first came into developing through tutorials and Android Studio.
It would also be my first time coding a web application or using Ruby, but for converting this non-complex project I am happy to learn something new.
Unless your app requires a lot of database interaction, Rails is probably too heavy-weight for what you need. If you're set on building a web app in Ruby then Sinatra is much simpler and a better option for beginners, but again depending on the complexity of the game, how you persist state etc, you might actually be better off with Javascript and a single-page app framework.
There really is no developing for Apple products without running macOS, but it is possible to do this within a virtual machine on a Windows PC.

Developing in Android Studio versus Framework (e.g PhoneGap)

I wanted to get a more experienced opinion on something I recently found out. A couple of months ago I set a goal to build myself a mobile app, and the first thing I did was go to developer.android.com and begin reading documentation on how to go about doing this.
I've invested a lot of time in understanding Android Studio and how to make simple apps (and I'm just now getting the hang of it all), but I just recently read about frameworks like PhoneGap(which let web devs who know HTML,CSS, and Javascript make apps too).
Before learning Android, I taught myself web dev through the Odin Project, which taught me a fair amount of HTML, CSS, and Javascript (little iffy on this language, but I'm sure it's something I could pick up easily since I already have a bit of experience).
I'm wondering what you guys feel are the limitations of using these frameworks and whether I should switch over to them, as opposed to continuing with Android since things are beginning to click for me.
Thanks!
I have developed apps for both Android and Phonegap. Phonegap takes advantage of your web development experience and lets you build mobile apps with ease. But it's not a replacement for Android API itself. A good phonegap application requires knowledge about web development and Android API.
However if your aim is to develop an android application, and you are comfortable with web development and Android, I would advice to take Android API.
Phonegap as wonderful as it is for web developers, and startups who can't afford to have dedicated resources for Android, iOS separately, has its limitations.
Performance : Phonegap app's performance is not at par with a native
android application.
Functionality : As one would expect you can't have all the functionality support a native android application has.
Look : You could easily tell apart a phonegap application from a native one. Given phonegap renders all the content in a webview, the look of native ui elements is lost
I think you will always need access to the native API to make good apps.
At least the navigation should be native, so that your app has the look and feel that the user expects, and so that stuff like the back button get correctly handled for you.
Even if there is some plugin that does that for you in a perfect way, I believe it's beneficial to know how Android works.
In the end, frameworks like PhoneGap add a layer inside your app rather than removing one, and it's always better to understand what goes on inside your app.
So the time that you've spent learning native Android won't be lost.
However, it makes sense to use HTML/JS if you want to share code between different platforms.
I think this article from Basecamp shows a very compelling example: https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content.

Develop a game using android or web technologies?

I haven't created a game before but I have a 2d-game on my mind that I wanted to develop. Though I am quite familiar with using javascript and aware of html5's canvas, I am not aware of the performance impact of creating using this tech over an android game. I am also aware about Chrome App and it's ability to work offline.
What will be guide in choosing between the two (advantage, disadvantage)?
Can the responsive feature of web be applied on a game?
Imagine my game as cut the rope for example...
Considering the performance and usability between browser and android, in your case there is no difference.
It comes down to what you are planning to achieve by creating this game of yours. Whether you are planning to make a fortune this way or not.
Advantages of browser games are:
easier to create (considering you know how to program in javascript)
web browser is more common these days than android therefore the accessability of such game is bigger
for someone to play your game, it is enough to type the correct web address( and this is also the biggest problem for you to overcome, either you are using some existing game platform such as facebook, or you have other means of how to advertise your web page, or you are doomed)
Advantages of android games:
without proper advertisement, it is easier to get some people play your game
programming 3D graphics for android is easier than programming in WebGL (though this is arguable considering Three.js)

Which approach should I take for my mobile application?

We will develop a, social network integrated mobile application which will need to access native device capabilities but 90% of the logic will be implemented in the HTML5/Javascript code posted by Ruby back end to the device. Thus, we would like to update or change the logic/GUI of the app without user involvement. We have strict deadline and have to support iOS, Android and Blackberry.
In this case, what approach would you recommend us? We considered the approaches below but could not decide since we do not have any experience with mobile development even if we are experienced in Ruby, C/C++, Java, Javascript, Flex.
Our considerations:
Develop native apps for each platform and embed the native browsers
to implement our logic, which can take too much time.
Use one of the frameworks for cross-platform development such as
PhoneGap or rhomobile. In this case, we are afraid of facing some performance issues. We would love to hear the experience of developers with those frameworks.
Use Adobe Air for accessing the device and its WebKit component for the rest.
First, I hope you understand that there is no simple answer. At this junction, having been looking at cross-platform solutions for mobile development for two years, I feel that in order to get fully native UI look, and to access all the device and UI features, one is forced to produce native application on each platform.
But, since you asked about cross-platform tools, here's a list of the main contenders:
Sencha http://www.sencha.com/products/touch “Sencha Touch is the world's first app framework built specifically to leverage HTML5, CSS3, and Javascript”
Dojo http://dojotoolkit.org “Dojo saves you time, delivers powerful performance, and scales with your development process”
Phonegap http://www.phonegap.com “PhoneGap is an open source implementation of open standards”
jQuery Mobile http://jquerymobile.com “Touch-Optimized Web Framework for Smartphones & Tablets A unified user interface system across all popular mobile device platforms”
Rhomobile http://rhomobile.com “Free and open source mobile application framework”
Titanium from Appcelerator http://www.appcelerator.com
There are plenty of comparisons online, including on SO, and this fellow actually tried to use several platforms, code included.
Anecdotally, I have seen Phonegap produce a rather iPhone-centric look, that may not mesh well with Android, plus showing performance problems when loading screens (there may be workarounds via pre-loading). Also, access to more complex devices was limited, or at least lagging. Rhomobile is a good fit for data-driven apps (simple display of large databases), but architecturally could show performance issues, so check for yourself. Personally I did not get into Sencha, Dojo seemed a little small, and Titanium showed dated architecture. So next time I'm attempting a cross-platform app, I'll give jQuery Mobile a serious try.
Let us know what you pick and how it works out.
Iam using this rhomobile rhodes for my cross-platform development App which will run in Android, Blackberry and iPhone.
We have developed application and sucessfully runned in all devices without any issues. we used ruby for backend webservice call, And remaining app is constructed with HTML5 and java Script. I didn't face any issues regarding rhomobile.
intially we faced memory issues, But later on we resolved this issue by implementing local storage for our App. For android it wont supports local storage so we used Rhom Storage only for Android Device.
Sounds like a project doomed to fail.
If I were you, I'd build a mobile-friendly site for all 3 platforms if deadline is tight. What native features do you even need, first off? If it's something like a camera, you're better off just build a native app for all 3.

Port Andengine game to other platform?

I'm planning on writing a multiplayer game with Android as my primary focus as far as OS/platform, but I would like the ability to port the game to at least the web. I'm looking into Andengine as I'm just starting out with java and android and it seems the most noob friendly. The game shouldn't be too demanding as it will be a 2d turn based game with simple animations and chat.
So my main question - is it possible to port a Andengine game to the web?
If not what would you suggest?
I looked at libgdx, but I'm concerned that it might be a little to advanced for someone just starting out with java/android. Am I correct in my assumption?
Another idea I've been playing around with is writing the game in Flash and porting it to Android with Adobe Air - does anyone have any experience with this? Is it a bad idea? I kind of have my doubts of how well this will work, but if nobody can really talk me down from this idea, I might just go this route.
I've also considered writing the game in pygame as it seems easier but I don't like the idea of players having to download something like Pygame Subset for Android or Kivy to run the game. So basically if the other options are either too difficult or wont work on android then I'm probably just going to go with Andengine and consider rewriting it later for the web if people like it enough.
Moai SDK is an open source multi-platform framework for game developers.
One codes in lua - a dynamic programming language (that is easy to learn).
Apps made using Moai can be deployed to iOS, android and the chrome web store.
Moai could be an alternative.
Andengine makes a fine starting place. (I have made 3 projects with it now and I really like it). but it does not deploy to anything other than android. That is its strength and its weakness. As a strength, it is very easy to integrate android OS features and libraries with your project and has good performance. And as a weakness, well, it only runs on android.
Code-once publish anywhere platforms trade off development time for speed and size usually.
Some top competitors in that area are:
Ancsa Corona
AppMobi
PhoneGap
Unity3D
Adobe Flash(bonus of web distribution)
and others. (Moai SDK listed by #andrew, for example)
Each platform has had successful games launched with them. Find the one that suits you and your projects needs best. Do not forget to check for things you will want to integrate, such as using Facebook for mobile, or AdMob, or OpenFeint or other 3rd party services.
Good luck and enjoy you game making!
Just a side note, user do not need to download "Kivy" to run the game. As other toolkit, your application will provide Kivy as other libraries you'll use.

Categories

Resources