Take 2-3 weeks vacation. Spend all of that time learning to code Java. Ignore everything you might encounter about server-side code (J2EE) or mobile code (J2ME). Try the tutorials at thenewboston. Ignore anything with game or Javascript in the title. Focus. If you had more time or pick this stuff up very quickly, you could learn OO principles along the way.
Prepare yourself for the possibility that you won't "get" programming. It's okay. Not everybody can program. If someone tells you it's easy and you're not trying hard enough, that's bullshit. If someone tells you it's easy and you're not smart enough, that's bullshit. Some people don't get programming just like some other people don't get physics or electrical wiring or anatomy or staying out of jail. It's just that people's minds don't all work the same way and we don't all have the same aptitudes. Some people think they can program, but it's beneath them. You're clearly not in that last group.
Got that? Now take another 2-3 weeks vacation. All that stuff you learned about Java is just the foundation. Now that you know how to generally program in the language of the Android SDK, you need to learn specific techniques for writing Android apps. Just a single example - garbage collection. When you're working on a machine with lots of memory and processing power, you might not think about garbage collection as much as you should. When you're working with an Android app, if you're not thinking about it, you'll get burned.
Most of what I learned about Android-specific development, I learned because I found myself with a few weeks off and committed to completing an app.
I'm just going to flat-out say this: if this is your first app, don't do this project.
There is a LOT of need for security when dealing with student's login information. If that information gets leaked, student grades can become public, which can get the school in a lot of trouble. I would be surprised if you could get this working without the school's knowledge. They probably don't have a public API to send/receive information, because it's a lawsuit waiting to happen if not done 100% correctly.
Start small, establish a career in it and rack up a few years of experience before you do anything on that level.
Good sources include:
TheNewBoston's YouTube series - Some people will say that he's not teaching things 'the right way'. Those people are ignorant and should GTFO this sub </rant>. I liked it, it worked for me, it may work for you. Give it a shot.
Android API Docs - Run-of-the-mill documentation library. Great source once you get going and need to know the details of objects and methods and such.
Google - Honestly, as with most coding, Google is your best friend. There have been so many libraries I didn't even know existed, and Googling some words related to what I wanted to do yielded fantastic results. Information, examples, tutorials, and even full importable libraries.
It's very difficult to answer your question in a single post. You should know the basics of Java of course but what you will be able to do will be limited by what you know. I suggest picking up a book and using online resources and just jump in, get started! You'll learn along the way.
Book that helped me a lot: http://www.amazon.com/Professional-Android-4-Application-Development/dp/1118102274/ref=sr_1_1?ie=UTF8&qid=1409582592&sr=8-1&keywords=professional+android+development
and Android development ground zero:
When recently I started to learn Android, and Java many years ago I went to recommended tutorials. Like you I felt that I was missing something in my learning. At the end what did it for me were the actual language documentations. For Android, developer.android.com was an invaluable resource mainly because I was already familiar with design patterns and how things should work from other frameworks. I didn't need a "Hello World" step through app tutorial, I just needed some help with how to put "Hello World" on the screen in mobile context. Same with Java - The Java Tutorials from Oracle.
It's also beneficial to draw similarities with other frameworks/languages you already know. For example, when learning Android I was able to extract similarities from CakePHP, which is PHP web framework. I found this to be quite funny because the two are quite different in the problem they were trying to solve.
I would recommend the official Android tutorials and JavaDoc from Google (http://developer.android.com/index.html).
As for the synchronization, I would recommend that you either use a standard API (based on HTTP requests), or use a more real-time solution, like a custom TCP/IP server, Socket.io or Firebase.
It's not so much difficult as it is time consuming. I had 3 years of CS classes when I picked up Android development which made it much easier. If you're a student, try out the Android track on Team Treehouse for free. That will get you started. Another good starting point.
The same way you did it in 2011:
http://developer.android.com/index.html
http://thenewboston.org/list.php?cat=6
http://www.vogella.de/android.html
Speaking of "I'm concerned that a lot of the information I'm reading is dated", isn't the App Inventor ... well... dated? I remember using it over 2 years ago in college before finding out that it could not even do 5% of what you can do with actual code.
Is this your only option for a project? If not, I'd highly recommend picking something else. An Android app is going to be much harder and much more time consuming than a command line type project.
Never-the-less here is a popular Android barcode scanner library. Other than that, I'd recommend learning basics of Android dev from the Android developer site here.
The latter would be a smarter route, because Java is applicable to so many other fields. Objective C is really only applicable to iOS development and some kernel-level development for OS X. If mobile development doesn't end up interesting you, you'd have an easier time transitioning into another career with Java under your belt.
You'll also find that Android OS and devices are exploding right now, and while Apple was perhaps a trailblazer in terms of mobile phones and tablets, they're having a hard time keeping up with everyone else's innovation. (In fact, their latest tactic is to sue everyone to keep their thumb on the market share. Dirty pool, Steve.) Not everyone is happy with Apple's walled garden in terms of development, and hardly anyone enjoys working with iTunes to sync their apps and music.
Start with Android. If you have the money to buy a new Mac, you have more than enough money to buy a nice Android device to test on. Android phones and tablets are a lot less expensive than the iPhones and iPads. You're ready to start developing RIGHT NOW. No fees. No Apple Developer accounts. Just go! Go make something awesome!
EDIT: To those of you who are downvoting me, perhaps you've got a different opinion you'd like to share? I don't really care about karma, but downvotes don't really do anything to counter my point of view.
If you don't already know Java, learn it. You are not going to get very far without being at least somewhat proficient with Java. You only need to focus on core Java though, no need to branch out into GUI or web development (unless you want to learn that too... but not needed for android).
Once you are at least somewhat comfortable with Java, then you will need to learn the android API. It's a little intimidating at first, but stick with it and eventually it'll click. A good starting point is Android Developers.
If you learn well by watching videos, Derek Banas has some great tutorials on Java and Android.
Consider installing an Android development environment on your Mac. It includes tools for exploring your phone's diagnostic console, taking screenshots and getting them on the Mac without pushing buttons on your phone, and much more.
http://developer.android.com/index.html
download the ADT bundle, and jump in. no need to buy anything. if you want it on the market there's a $25 dollar fee to make a dev account.
just break down your app into parts that you need to learn how to make, and piece it together. there's a lot of information on the dev site, and a lot of tutorials online. don't get too into design and best practices just yet, just try and get your app built. good luck, it's not easy.
I'm pretty sure that the vast majority of android developers are self taught. If you know Java then roll over to http://developer.android.com/index.html and/or check out Amazon for high rated Android books.
Android is special case of java. First it's only subsed and restricted to android platfrom. It is preferable if you by you some popular java book and work it through. Please do attentuon to OO concepts, try to understand why they are good. Then you maybe can start directly with android: http://developer.android.com/index.html
This video series is pretty popular.
The Android developer site is also good.
Personally, what I've learned is by coming up with a project, then figuring out how to do it.
For **Android **check out their dev site, all the programming is in Java and then a bit of XML for the layout. The most popular development environment is eclipse with the ADT(Android Devloper Tools) plugin. A license to publish to the market costs around $25 one-off payment.
iOS has a dev site too, the programming is in Objective-C and the development environment is called Xcode. To use Xcode you either need to buy a Mac or make a Hackintosh. A license for their app store is $99/year.
SOURCE: I've released apps for both stores, although I only did the development for the Android version of the app.
There may be better resources, but here is Google's own documentation/SDK.
On another note, Corona SDK is what I am using. Very quick & easy to work with and allows you to publish for both Android & iOS.
I have had previous programming experience but had never done java or android programming before. I found the developer's site to be the most helpful resource. They have great examples and some really good tutorials. http://developer.android.com/index.html
Android apps are most often written with Java, so any and all basic Java tutorials/classes/books are a great start.
From there you can head over to the Android Developer page and learn the Android basics.
If you know nothing about Java or coding like you mentioned, jumping into the Android API will most likely be over your head. Get a solid understanding of Java first.
Patience you must have young padawan!
When I started learning java and android that's all I ever needed especially watching tutorials and learning on the android developer website http://developer.android.com/index.html
Get familiar with the Android SDK, learn how android works, get familiar with XML, and get used to android studio.
http://developer.android.com/index.html
https://www.thenewboston.com/videos.php?cat=278
Are your best friends
> Where it hurts is that I spent a considerable amount of money buying specialized hardware (high-end computer and a variety of Android devices) required to develop Mobius USB Tools, without ever getting any revenue to cover expenses.
No offense, but you don't need a "high end" computer to run Android Studio, which is the FREE IDE that's used for developing Android Apps. And a cheap Android tablet with a USB port should work perfectly fine for device testing. Outside that, the IDE also provides simulators to run all of the Android OS releases, so his expenses should be minimal at most. If he thinks Android development is expensive, he most likely won't want to develop for iOS, where even the cheapest Mac to develop on costs more than all of his expenses combined.
I've spent a day fiddling with my Mobious in making an OSX app to generate the sys cfg.txt file that the Mobius uses. I don't think this would be really hard at all for an Android developer to do, and even release it as open source on GitHub. Someone with some basic skills in Java should be able to whip up an easy syscfg.txt generator that reads and writes directly to the device (and/or the card for non-USB devices).
You can start with java. It is not that hard, especially if you are only focusing on android development. Start with http://developer.android.com/index.html and start building small starter app. Learn as you go.
Start with android development here
Yes, it's worth it. You're lucky that you're majoring in CS. The market is hot for CS right now, like red hot. And UIUC is an amazing school for CS. Just make sure to be proactive, apply for internships, and actually attending classes (you'll tell yourself "I'll just sleep in and watch the lectures online since they're being recorded", but you won't).
Also, go to the career fair as a freshman. While it's not common for a freshman to get a summer internship, it's not unheard of. This summer make an android app, take SICP, or learn you a haskell. Then put it on your resume, so you won't be like all the other freshmen/sophomores with only "java, html, css" on their resume.
Learn Android or iPhone development. Here are two resources for you:
Android: http://developer.android.com/index.html iPhone: http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051
Have fun learning!
unless you are willing to spend thousands of dollars to hire a developer. .best bet is to learn development yourself
I personally only ever use http://developer.android.com/index.html or stackoverflow, but i was an experienced developer before getting into android dev. I have however seen many people recommend the new boston tutorials on youtube: https://www.youtube.com/playlist?list=PL023BC9408BAFEC0C
Thanks!
Most of the design is based on Google's design guidelines, which is also a good place for sample code/snippets.
Besides that, check out the open-source libraries I used in the About section of my app (under the menu option).
I think you're on the right track. Simply acknowledging that app development is not a get-rich-quick scheme is a good thing.
If you're only interested in developing android applications, rather than overall development, I would stop the JavaScript course. I'm not sure if you've paid for it (if you have, obviously get your money's worth) but Java is where you need to be.
Once you're taking a Java course, begin to look at the Developer Site for Android. It's got a nice beginner tutorial.
Also, ask tons of questions. Stack Overflow is one of the better resources out there.
I think with a good C# background, you can start directly into Android... unless you specifically want some experience with Java (outside of the Android world).
As far as tutorials -- Let's see. The Android docs on Google are a reasonable place to do the initial intro -- "get a dev environment installed, config an emulator, run a hello world app" level stuff.
Beyond that, I've currently enrolled in this Coursera course from U.Maryland. They're four weeks in, but with some focus you can catch up if you're not particularly worried about the grading/certificate aspects. It also has the advantage of dovetailing into future classes on building server-side code to communicate with your Android app (cloud storage, shared server data, etc.) It does assume general Java/OOP programming knowledge, but I suspect that won't trip you up.
I am not entirely sure I have little experience in java but there is a android developers package that will probably cover the UI here is the link to the page http://developer.android.com/index.html see if you like it
Google is your friend, sir! http://developer.android.com/index.html
Start with getting the Android SDK, then download the Eclipse IDE and android plugin, and download your SDK tools. They have a lovely section on how to start making your first app.
Yes you should post this in AndroidDev as well.
In terms of development you should learn Java and take a look at this site for tips on Android Specific stuff: http://developer.android.com/index.html
There is no complete guide to hacking for Android, there never will be, because there are so many different devices, running different versions, with different hardware and different restrictions. Unlike the iPhone and iOS, Android is not one simple, controlled thing, that works absolutely the same for everyone.
You wouldn't be asking for a guide here, you'd be at least asking for a book, or 3.
It's easy enough to figure out how Android works just by playing with your own phone.
The biggest mass of information is on XDA: Forums, Wiki
Check out sections relevant to the devices you want to work with.
If you want to look at the guts of the thing, (the real, source code guts), then just check out Google's developer site, which is also massive.
http://developer.android.com/index.html
GL,HF.
There's not a specific website. I just type what I want in Google, and pick some page from that list.
I'll try "android display image on button" and see what I can get from there. the site StackOverflow comes up a lot, but you can't really start from ground zero there, you can only find answers to problems you have in a program. I would imagine http://developer.android.com/index.html might be a good place to start.
In Québec we don't have the concept of Major/Minor, but the project has been developed by 7 students in a computer engineering program. The main idea behind the project was to develop an app using augmented reality concepts.
Developing for Android is really easy, all the tools are either free or open-source. We used Eclipse with the Android plugin that you can find here: Android SDK
We used Java since it's easier to debug (you can remotelly debug your app with the SDK) but you can also use native calls to C/C++. For the OpenGL code, Android has a jogl-like interface for accessing the OpenGL ES engine.
If you have more questions, don't hesitate to post them and I'll try to answer them the best I can :-).
TL;DR: Yep, just start developing using the Java/ Android API. You'll learn as you create.
I'm a fair way through my first app, only having very limited experience in programming and scripting beforehand. I'd also never touched an object oriented language before.
I basically started with the idea. I had a need for an app, nothing existed, I decided to create it. The first element was storing a heap of text data. So I looked up tutorials on SQlite and tried to make sense of them. It took quite a while to wrap my head around it, but customising parameters helped me work it all out.
Then I needed to display the data in a decent UI. I downloaded a heap of apps that handled data and looked at how they displayed things. Once I came up with some ideas, I hit Google for some tutorials again, and adapted them to my app.
I guess what I'm getting at is that the method I'm using to learn Android dev is to simply break down the tasks I need to complete, and look for ways to accomplish those tasks, one at a time. If there aren't tutorials about, hit up the Android developer site. It's pretty damn good.
I'm certainly no developer yet, but I'm pretty proud of my functional app that is starting to look quite professional.
I taught myself everything online. Here is a good website to get started if you'd like to: http://developer.android.com/index.html . If you don't know anything about java codingbat.com is also really good for that. Best of luck to you if you decide to do it :)!
If you already know some Java, then getting started on Android development is very, very easy. Go here and download the Android SDK. It's got everything you need to get started. There's also an Eclipse plugin (available at the same place) that's the recommend tool for Android development, but if there's another editor you prefer you can use pretty much any Java IDE (I developed my first app with Emacs).
The SDK download includes the Android emulator, which will get you pretty far for developing and testing apps. There's really no reason you can't get started with the emulator and decide before you purchase a phone if this is something you want to pursue further.
> But don't know anything about programming.
In the end app dev is about programming so this is kind of a problem.
There's a lot of free material and documentation so you don't need to buy anything or take courses, but all of it kind of requires some basic knowledge of programming.
I think you should try programming first, just some language. To get started not much is needed: https://www.codecademy.com/learn/learn-java
Learn from the source. Seriously there's nothing better. The most important thing is that you think for yourself and ask yourself questions and try to find the answers.
I honestly wouldn't trust any classes for education in general and Android in particular.
General tips:
Read everything on the screen.
Think about everything.
Never let a word go by without you knowing what it means. P.S: Get your definitions from Merriam Webster and google images.
Understand, don't memorize.
Google it before asking a person a question. Actually read the descriptions of the results and think about which result is the most likely to give you the answer. Open the likely ones in new tabs and read them all. Unless your browser has 50 tabs open and you've read them all, you're not trying hard enough.
The ability to think and solve problems you've never encountered before will set you apart from 99% of the engineers you'll come across in India.
I taught myself (a little) computer programming by:
reading a "Java for Dummies" book from the library to get me started
doing the starting tutorial on the Android Developer website (since I wanted to make an Android app)
googling questions whenever I ran into a problem, which almost always led me to Stack Overflow for answers
That's just one possibility. Classes on Khan Academy, or a more structured online class may help.
A scrobbler is "simple" in comparison to other apps. But it's far from simple.
I implore you to check out Android Developers, and even attempt a "hello world" app.
Programming, even for simple apps, can be daunting, time consuming an infuriating (you've never understood true rage until you found the missing ';' in 1000 lines of code (1000 is small in terms of size, depending on the app).
Your intentions are good, but I don't feel you truly grasp that it's not a simple task.
The android API is one of the better API's out there.
Your questions are business related, and in that case the other poster here answered it. androiddev is quite an active little community on here.
There are API's/SDK's which Google defines exactly what you can do with android. It's all defined on their developers site http://developer.android.com/index.html. Some things that you can do only appear in certain versions of android and above. However Android does give you a lot more freedom to customize you're app just the way you want with their API's/SDK's. IOS on the other hand has a more limited SDK list.
It should be noted that even though it is great that android is so customization, the more SDK support, the more room there is for error and apps that take too many liberties in the amount of information It requires to access. This can be see with Facebook's scrutiny in their messaging app. It made huge headlines several months back, but no one really realized that the problem only truly existed on the android version of the application because Google believes in giving freedom to the developers.
Is this is a good thing? Should we abuse it? Are we abusing it? It's up to you to decide. (It's also good to mention that apps are reviewed before making it to the Google play store and users are prompted with the permissions that the app feels is necessary upon download)
Start with Android. Infinitely easier to get started as a beginner, plus you don't need a mac, nor do you need to know Objective-C ^ugh .
You can get the Android SDK, along with a download of Eclipse that works well with it here. Android apps are written in Java, so make sure you have an install of the Java SDK as well.
There is a lot of online documentation on Android programming here. Good luck!
While java will work on a pi, I wouldn't recommend it. The most common languages you'll use on a pi will be python, c or c++.
If you want to learn android, I'd suggest just using your phone, or buying an extra android phone. Heck you really don't even need a phone, you can just use the emulator built into the android sdk.
edit: Here are some resouces to learn android:
http://developer.android.com/sdk/index.html
http://developer.android.com/index.html
There is also /r/android and /r/androiddev
Youtube is a great resource too
I started with the guide and tutorial in http://developer.android.com/index.html Then looked around on the net for the things i was interisted. Nothing special. Looked for a example of a good gameloop. I am experienced in c++ and java. You can take a look on my first game here: pimple-popping . Started in the beginning of the year and code in my spare time
I believe that there is an Android plugin for NetBeans. That being said, Android Studio is now available for free and is based on IntelliJ IDEA and is pretty great so many consider giving it a download.
Check out: http://developer.android.com/index.html
Books get outdated quickly but one I quite like: http://www.bignerdranch.com/book/android_the_big_nerd_ranch_guide
Just make sure if you get a book that you pick it up and run through it quickly. Stuff changes so fast that in a year it might no longer be up to snuff.
If you have a good base in Java and some general UI concepts, it will certainly help you. There are lots of specific Android quirks though that you will have to hurdle.
I've already seen things starting to shift a bit toward conservatism in there, given the desire to move forward to the 1.0 milestone (then again, the important improvements compared to ye olde languages are generally already done, as they're just parts of the language itself). The community there seems to be working at an extreme pace to deal with the remaining issues. I used to think it would take several years of slow progress, but I suppose Mozilla put some important resources to work.
The last time I saw something that made this much sense to me was when I saw an announcement of a new Java-based mobile platform in 2007. You might've heard of it. I expect Rust will see exactly the kind of unprecedented success, although the programming world seems a bit more conservative to me than the world of mobile phones.
Highly recommend the official documentation - it is going to be a great resource. Mkyong and Vogella also have some good example applications that can help you with specific things you have questions about (i.e., loading data, using fragments, etc).
Hope this helps!
Check out androiddev!
If your not planning on using OpenGL ES then I suggest you start with the offical documentation specifically the starter tutorials in the training section.
Once you get a handle on views and resources this type of game should be fairly stright forward.
The android SDK is available here: http://developer.android.com/index.html, and I hear libgdx takes alot of the pain out of game development on the platform. If you don't already have one, go snag an android phone, the emulator is painful.:P
Depending on the course you're undertaking at university you could start developing Android applications.
Licence only costs $25 from Google and then everything else is free!
Won't be a constant, fast or extremely profitable source of income but it may help!
1) If don't know Java, go learn Java
2) If you don't know the Android SDK, go learn the Android SDK. The dev guide has a TON of information of what you would need to learn Android: http://developer.android.com/index.html If you need a book, pick up Hello Android or Reto Meier's Professional Android book
3) Code, code, code. AND START SIMPLE! The first app I wrote was a tipping calculator, just so I get a grasp on the platform. My app is open source (but it is also dated, I wrote it nearly two years ago), you can find it here: http://code.google.com/p/tippytipper/ If you want to see a more recent Android 3.0+ project, my radio reddit app is currently under development but also open source: http://code.google.com/p/radioreddit-android/
http://developer.android.com/index.html
The developer docs have almost everything you will need to get started. Install the SDK and Eclipse and play around with some of the sample programs included in the documentation to get your feet wet. If you have any questions concerning Android development, Stack Overflow is the easiest and fastest way to get help.
A lot of this stuff can be performed in Android quite easily. Take a look at the android dev site for information on the API (http://developer.android.com/index.html).
Essentially, Android apps are granted certain permissions by the user at install. You can define the features your app uses in your code, and users will be prompted to allow the app those permissions on install. Access to the contact list is definitely one of those.
How's your Java skills? If you're not used to Java, it might take a while to get anything functional. The good news is that if you stay within the framework of the android dev environment, you'll struggle to screw up your phone.
Google App inventor might be an easier way to get started, but I've never used it. You won't need as much (or any?) Java.
The Browser is very very buggy and slow sometimes. I have a love/hate relationship with it, sometimes is really fast, opening and scrolling... however.. sometimes it makes me mad.
This is very ironic, but try to open http://developer.android.com/index.html and scroll up/down, it does not render properly and sometimes it takes up to 3 seconds to render properly. That is just unacceptable, the browser is the PRIMARY tool in a tablet like this, it just has to work, period. I know we can use other browsers, but those are also slow and not yet optimized for Honeycomb...
Along these same lines, please keep in mind those of us with android tablets. Don't constrain the size of the program, please.
This is, of course, if you even get around to doing it.
Also, you know you can develop for the Android platform without the phone, right?