how to setup python backend for android app - android

I am very confused right now on where to go to start deploying an android app of mine.
I have written a few hundred lines of code in python as a backend. It basically monitors a website specified for a new uploaded file, downloads it, modifies it a bit, and serves it to client app-users. The app is close to done too, just have to integrate it with the backend.
I could do this at home without a service, but my internet speed at home isn't good enough.
There are so many options like Parse and Google App Engine. I tried watching a few app engine tutorials, but they were so complicated with making APIs and other things. My app is simple and straightforward. How can I implement this?
This will require close to 50GB of space at most for the first phase. I might want to increase according to how my app goes. I am mainly looking for the backend to download the files from the website very fast so I am not behind on schedule.
Or am I going the wrong way with this? I need some guidance. Thanks.

Related

Implementing online connectivity and multiplayer/PVP for a newbie

Background
I'm a noob programmer looking to create a simple turn based mobile game as a side project. I've pretty much got the game logic down and am left with implementing the online multiplayer/PVP portion.
More specifically, i'm looking to implementing a system when the player clicks play and will be matched with an opponent in a 1 v 1 format, without any lobbies etc etc.
I'm currently trying to develop my game in android studio(i'm new) but am also open to unity if it makes the development easier.(I have no experience in Unity).
What i want to know
From what i understand,i need to create and host my own server for the multiplayer to run(i.e matching of player to opponent). Do i also need the server to run the game itself or am i able to connect the player to the opponent and simply record the result of the game to my server/database?
Also, how would i go about creating and running/hosting the server? I heard nodeJS is a good choice for writing the server.
Can anyone point me to a good resource/tutorial for creating and running my own server, and if possible free(or cheap) hosting for my server?
Also, is unity a better choice than android studio for my game?
End Goal
I just wanna publish my game onto the app store,IOS store,etc etc.
If you don't have any experience with creating multiplayer games, I'd recommend looking into one of the several ready-made solutions available on the market (Unity Multiplayer is one such service). You could essentially make your entire online game without ever needing to code a server.
Coding game servers is more work than you think. You'd first need to make a working game server, then you'd need to consider hosting, data storage, scaling, ping, etc. The downside is that you'll get less customizability and less security (you'll need to handle much of the game client-side, which means you're susceptible to hacking by modification of the client, known in the android world as "mods"). However, if you're just starting out, a game server of your own will probably do more harm than good.
You should always choose a multiplatform engine for mobile games. You do not want to code your entire game twice. So yes, Unity is a good choice, and it's the de-facto standard for mobile these days. If you're going to be making games, learning Unity is a worthwhile investment.
Last, and this one comes from my personal experience only with no real statistical data to support it, people who implement game servers with node often end up discovering that their server just can't handle the load, which leads to a need for stacking a whole lot of technologies up on one another to scale the server(s) out or squeeze more performance in some way. It'll often prove to be bad choice in the long run. Or then again, maybe the people I know just aren't good with node.

What services could be used as back-end for a mobile app?

I have an idea for a mobile app that I would like to make. I am experienced in programming locally on the device, but not so much at making something that has a server in it.
I have (rather hastily) rented a server at HostGator and rented the domain name.
I made a project for university before and did the server-side scripting, but it had flaws, wasn't well polished and took a lot of time. So I'd like to avoid it as much as possible.
I have been searching the internet from morning till night for services that would take the load of server-side from my bac.
I'm planning to build an iPhone and an android app that will actually be "wrappers" to my data on the server. I will need user accounts and databases in general. The app will basically connect the users in some way and organize events for them. I saw a lot of names like "Parse" and "Kinvey" but I'm not really sure if that's what I'm looking for or not. Would I need to build an API myself, put it on the server, and wrap the apps around it? Or is there (hopefully) another solution? I'm looking for general guidance and what to research exactly.
What you're looking for are BaaSs (Backend-as-a-Service) and there are plenty to choose from. I highly recommend Firebase as a starting point as it's pretty easy to work with and pretty fast to get up and running, though there may be a learning curve in grasping how you should define your data in an efficient way. Parse is now defunct and you'll probably still have to wrangle with trying to get it deployed to a server, which may be a daunting task if you don't have experience with that kind of stuff as it's now just an open source project that doesn't give you any server infrastructure to work with out of the box like they use to. Other promising BaaSs is Realm's mobile platform which I haven't tried yet.

Need directions

I need some directions and advice. :)
I have a project for a mobile app in mind (look below), but am confused about all the different programming languages, frameworks and so. Confused about what to focus on.
Also, I'm not sure if I should focus on a solution specifically for this project or just try to get good at developing mobile apps in general?
I have learned the basics of JavaScript and Swift. Have never tried working with a framework.
The app has to be able to do the following:
Store user data (strings and numbers)
Show various graphs and stats based on the user data
Look like a native iOS/Android app (e.g. like iTunes and App Store with the menu at the bottom)
Send push messages to the user
Ideally work for both iOS and Android
I’m of course looking for as easy and fast a solution as possible, but more important is that the solution looks and works like a quality app.
So, which solutions would be best for the project above? And what about developing apps in general? (or does it vary from app to app?)
This is a very basic question, and I would suggest getting familiar with iOS/ Android development in general before making your own app.
There are tons of great tutorials out there on how to do both, I would suggest getting started with either one based on what equipment you have available and what you're familiar with.
If you want to make an app that runs on both platforms you could make it in HTML5, but I'd suggest making a native iOS app in either Obj-C or Swift, and a native Android app in Java.

iPhone/Android webapp wrapper

I work at a large company that is looking at building apps for internal use only (iPhone/iPad). We are looking for a SIMPLE way of creating apps that essentially are just a web browser with a predefined URL and no address bar/tabs, etc. Essentially a very dumbed down browser with a custom logo. What is the easiest way to accomplish this?
We would obviously be distributing these oursevlves and they wouldn't be available in the App Store, so app guidelines aren't an issue. We are on Windows boxes and are Java/Web developers so we'd rather not get into too much C sharp if at all possible, fyi. Basically it'd be nice if the tool (if one exists), were to allow us to give it a URL, an icon image, and it builds the app from there.
And while we are starting out with Apple devices, we need to be cross platform compliant with whatever tools we use because I can imagine the day when they decide to buy Android or WindowsPhone devices later on.
MobiOne? PhoneGap? Appcelerator Titanium SDK? Can either of these do what we need? Something else?
A big 'No' for MobiOne. I bought it for 99 dollars. As they advertised, I was able to create a static app within hours. But that's pretty much what MobiOne can do. The moment you start using html, javascript or even audio, all sorts of problem seem to creep up. And there is no support in their forums either. My basic question about using the audio player remains unanswered for a month now.
Here is the worst part:
The tool has a poorly built emulator. Often times, my app worked fine in the emulator but failed to run when deployed to a real device. And at times, i have seen the vice versa too.
Since then, I switched over to PhoneGap(which is free). It took me 2 days to just set my environment right. But once I had the environment setup, it took only minutes to deploy my app in to a virtual device.
Looking at your requirement, I would say that your safe bet is PhoneGap.
I don't have a working knowledge in Titanium but I read in a lot of forums that it supports less platforms when compared to PhoneGap. Titanium seems to give a more native feel to the app but that also means you cannot port it to multiple platforms without changing the code.
Apple may reject your app if all it does is wrap a web site in a WebView. You need to have more functionality in your app than just loading a web page.
From the app review guidelines for iOS:
2.12 Apps that are not very useful, are simply web sites bundled as apps, or do not provide any lasting entertainment value may be rejected
You would need to add additional screens to the app like an about page and a contact us page in order for your app not to be rejected.
As you say you know JavaScript, look into appcelerator.com it allows you to build cross platform apps and only writing your code once.
I would re-evaluate your reason for wanting to create these projects as an app in the first place. What app functionality do you want that you don't have now with your web page? You didn't mention anything in your question that would indicate this needs to be an app.
On Apple devices, you could create an icon that points to a web site. You could define the pages in a way that hides the address bar. Lastly, the web pages could easily be cross-platform already.
Wrapping this into an app would just possibly complicate the process. You may need to deploy updated app code to the device, where a refresh in a browser works just as well.

Please give me a 'kick-start' to build an app to log into a web site

Never built an app before.
Downloaded & installed SDK & Eclipse.
For my 'learning experience' I would like to build an app for my Galaxy S II (4.0.4) that will take me to a web site and then log me in, eg: my Gmail Account or my Voip.ms Account
Can someone point me to a tutorial or suggest how I should start such an app?
Is this too complicated to begin with?
Personally, I think this is way too complicated to start as a learner. You may end up spending a lot more time in debugging some code which does not work because of some silly stuff rather than "learning" how to code Android.
I started with a simple app that has few screens, stores some info in local SQLite DB and sends some across to an remote SQL Server over internet. I managed to complete this in 2 weeks and got quite a good hold on Android basics. Now I am working on a much complex app and am not getting stuck in fundamental issues.
Developer.android.com offers some good app examples and tutorials and is the first go-to location when you want to see how to do something Android-related.
As for what you want to do, it will really depend on the website. Going to the website in question, searching for a developer section is the way to go.
There they will explain which API they offer to devs. OAuth + REST are widely adopted but there is no universal solution, it really depends on the website.
A final note : embedding a webpage in an Android app is a very bad idea from an user-experience perspective, Using an API to offer a native app will always result in a better experience.

Categories

Resources