June 17, 2013 By: Jimmy McGee
If you are an Android app developer, you know that however great the Android OS is, it has some failings. One of those limitations is inflexible permissions. However, there are ways to work around that. Using a plugin strategy where the main app can be extended by users is one way to get around that limitation. Except Android doesn’t have a single model for plugins, but it does offer many ways to create plugin-centric architectures for apps.
If you have often thought about building an app to support plugins or wondered why plugins are important, you should attend this year’s XDA:DevCon 2013. One of our speakers is Mark Murphy, founder of CommonsWare and author of “The Busy Coder’s Guide to Android Development.” He is active in supporting the Android developer community, from answering questions on StackOverflow to publishing sample code and reusable components as open source.
Mark’s experience ranges from consulting on Open Source and collaborative development for Fortune 500 companies to application development on just about anything smaller than a mainframe, and he is a three-time entrepreneur. He has been a software developer for nearly three decades, from the TRS-80 to the latest crop of mobile devices.
As a man with immense experience, Mark will give anyone interested in app development loads of information at XDA:DevCon by presenting why plugins can be important and how to plugin-enable your app. He will be using apps like Roman Nurik’s DashClock as an example. Join us August 9 to 11 in Miami for XDA:DevCon 2013. Register to attend using this link for exclusive savings.
June 16, 2013 By: Mike Szczys
We’ve all done it at one point or another. You are hammering out some code and need one aspect of a method call to work so you just put null in for the rest of the parameters instead of actually researching how they work. I’ve actually done the very thing Dave Smith writes of in his article about inflating layouts. The second argument in a LayoutInflater inflate method calls for ‘ViewGroup root.’ I just slap ‘null’ in there and go about my business, none the wiser. There’s nothing wrong with that; it pulls the XML file passed as the first parameter into your layout so that it can be displayed on the screen. You could go years without having a real problem with it. But when it does it bite you at some point down the road, you’re going to pay a big time penalty trying to figure out what is going wrong.
Dave did a great job writing his article explaining how a LayoutInflater works. The reason the inflater is looking for a ViewGroup is to inherit any styling that may have been set at a higher lever. He shows an example of this using a ListView that should have a fixed height specified by the theme. If you specify null, it has no context from which to inherit the values and results in the smallest height possible. He goes on to assume that the developer would then create a second XML specification to fix the problem, and I think he’s spot on with that prediction. This breaks the concept of themes and makes the code much harder to maintain. He does mention an exception when inflating for an AlertDiaog, but this is a moot point because the inflater will basically ignore the ViewGroup parameter when specified for a dialog.
There is no doubt to any of us in the Android enthusiast realm that there are plenty of talented females in the ranks. Obviously, there are an extraordinary number of males in this environment, and often it is said that the environment is inhospitable to women. However, we like to encourage developers of all sexes, races, religions, and ethnicities.
In today’s episode, XDA Developer TV Jayce talks about women and coding. Jayce interviews Heather Paynce, Founder of LadiesLearningCode.com and Co-Founder of HackerYou.com. Heather talks about her experience with code and the industry. Find out what he has to say and check out this video.
Here at XDA, we celebrate developers of all types—from hardware hackers, to kernel commanders, and even bootloader bandits. Also, we love to see people make their own applications. Our love for app developers is so great that we have a special forum resource and are putting on a bunch of talks about app development at XDA:DevCon 2013.
One way an app developer can show of his or her stuff is to attend a hackathon. A hackathon is an event where developers can got together to build something. They often last a day to a week and have some intended end product. Often, there are winning groups or people. However, what if you are new and do you stand any chance against these seasoned veterans?
In today’s episode, XDA Developer TV Jayce talks about how a rookie can win a hackathon. Jayce interviews John Scott, the Berkley University Hackathon Winner and the Co-Creator of “Picture Yourself.” John talks about his experience at the hackathon. Find out what he has to say and check out this video.
June 9, 2013 By: Jimmy McGee
Just recently, XDA Developer TV Producer Jayce finished up his series on Job interviews. If you haven’t already, make sure you check out his resume tips, tips for dominating the phone screen, rocking the main interview, winning at salary negotiations, and not getting thrown off by the tough job interview questions. This week, Jayce talks about how software developers can use Social Media to promote themselves.
In today’s episode, Jayce talks about unique uses of social media to get people’s attention, as stated by Gary Vaynerchuk, a person who Jayce interviewed yesterday to Matthew Epstein, who tried to get Google’s attention. Jayce gives other examples as well. Find out what he has to say and check out this video.
Last week, XDA Developer TV Producer Jayce finished up his series on Job interviews. If you haven’t already, make sure you check out his resume tips, tips for dominating the phone screen, rocking the main interview, winning at salary negotiations, and not getting thrown off by the tough job interview questions. This week, Jayce interviews someone who has a different take on this topic.
In today’s episode, Jayce interviews Gary Vaynerchuk, a person whose Wikipedia page defines him as a man of many interests. He is co-founder and CEO of a social media brand consulting agency, a video blogger, co-owner and director of operations of a wine retail store, and an author and public speaker on the subjects of social media, brand building, and e-commerce. Find out what he has to say and check out this video. READ ON »
I was really excited back in April when I heard about a list of open source Android apps that could be used for learning. Here’s an app that will go hand in hand with that kind of resource. XDA Junior Member DesarrolloDroide has been hard at work on “Libraries for Developers.” It’s an app that features a wide range of libraries, presenting them by category and including demonstrations of what they have to offer.
The main categories include Widgets, Menus, Popups, ActionBar, Animations, and several others. Clicking into each one provides the title of the related library along with a brief description of what it does. Clicking through to the summary screen provides the name, a longer description, and the location of the source code. It is here that you can see the name of the developer which links to his or her webpage (I think this is a nice touch). The license used by the library is also displayed with a link to the full text so that you can decide if its terms suit your needs.
This is also where you can access several demonstrations for each package. I tried out a couple dozen and they all worked perfectly for me. This turns out to be a huge boon for larger libraries like Actionbar Sherlock, which have a ton of different features. I also found it to be a great way to tune libraries that have many parameters, like FlipImageView. If you’re trying to figure out how to get the UI to do some tricks changes are the answer will be found faster by browsing this app.
I’ve never heard of Parse before, but a quick look into what they’re all about really drives home the value of this type of service. The package comes in the form of an SDK to include when developing your app, and server-side services that go hand in hand with it.
When XDA Senior Member MaartenXDA first discovered Parse, he was looking for a way to send Push notifications to his app. It does that quite easily, and there’s a free version of the service that will let you send up to 1 million notifications per month. But before you lose interest, this is not the only thing you can do. Keep reading to find out more.
MaartenXDA’s original thread is a multi-post guide for using the service. The top post gets your development environment set up and walks through the process of allowing Push notifications from your app. Then, he goes on for two more posts to cover User and Data functionality. The ParseUser class provides all sorts of options to manage how a person uses your app. This includes things like email verification, secure login, and limiting what an anonymous user can do. The ParseObject class allows you to store data on the Parse cloud servers. Game developers may want high scores to be persistent across devices, or a reader app could use this to sync reading position.
Once you’re up to speed from reading the guide in the forums, you may find the Parse Documentation useful.
June 2, 2013 By: Jimmy McGee
Finishing up his series about Job interviews, XDA Developer TV Producer Jayce talks about the scariest and most difficult questions in an interview. I’ve you haven’t already, make sure you check out his resume tips, tips for dealing with the phone call screen, and acing the main interview.
In today’s episode, Jayce again interviews Rachel Finan, a recruiter at Hays Recruiting, about salary negotiations. Rachel gives some tips about how to answer curveball questions. Check out this video.
Continuing his series about Job interviews, XDA Developer TV Producer Jayce talks about the biggest unknown to most people in the job process: salary negotiation. He’s already given you resume tips, talked about dealing with the phone screen, and how to ace the main interview. Now he talks about getting the pay you want.
In today’s episode, Jayce interviews Rachel Finan, a recruiter at Hays Recruiting, about salary negotiations. Rachel gives some tips about how to negotiate your salary. Jayce then expands on his tips to help you get some bills to pay your bills. Check out this video.
Pssst… over here. Yeah, did you know about the Hidden Android Classes? Shhh… it’s a secret. They let you do stuff you otherwise couldn’t. You can read internal data, like the text message database stored on a phone. You can also gain lower level access to the hardware in order to extend your app’s access to things like the touchscreen input values, or WiFi radio usage. To get your hands on that kind of contraband, you’ll need to do some poking around in the Android SDK, and make a few… changes… to the way your Eclipse ADT plugin works.
This information comes to our attention because XDA Recognized Developer E:V:A bumped his own post out of year-old obscurity, but boy are we glad he did. If you like to do things you’re not supposed to, it’ll be worth your time to read the guide. Head on over to his original thread for full details.
E:V:A’s work boils down the avalanche of information on the subject which was posted by Inazaruk a couple of years ago. The Java classes that are known synonymously as Hidden or Internal Classes are protected from direct use and hidden from being shown in the Java docs (using the @hide directive). Using them is just a matter of hacking the android.jar file and tweaking your IDE setup to stop blocking your path to the forbidden fruit.
One thing I think Inazaruk and E:V:A both missed was a simple explanation of possible applications for the hidden classes. Read more about that in this article.
May 30, 2013 By: Conan Troutman
For most of us, Google I/O is probably beginning to feel like a distant memory—perhaps less so for those lucky enough to be browsing on your shiny new Chromebook Pixels. We’re all aware by now of the big stories from this years conference, but among all that was something that was of great interest to us here on the Portal, which you might not have noticed.
One of the sessions put on by Google was titled Voiding Your Warranty: Hacking Glass, the purpose of which was to show those in the Glass Explorer program how to root the device and run their own applications. During the session, the capabilities of Glass were demoed by showing not only how to gain root access but how to run a full desktop operating system, in this case Ubuntu. One of the tools used to achieve this was an application called The Complete Linux Installer that we featured here on the Portal just under a year ago. Considering that the application was written by our very own Recognized Developer and Forum Moderator zacthespack, we decided to track him down and get his opinion on the use of his application to help hack Glass and a few other things as well.
Well Zac, why don’t you start by telling us a little bit about yourself?
“Hello, I’m Zachary Powell (zacthespack on XDA) and I am a second year BcS Computer Games student at the University of Essex (UK). I have been on XDA since 2009, becoming a Recognised Developer in 2012 and a Forum Moderator earlier this year. My passion for both Android and FOSS has encouraged me to work on multiple projects, including Slap OS on Android, my newest joint-venture: XML Games, and of course; LinuxonAndroid. My other interest include computer games and computer game design. Virtual Worlds are a particular interest of mine because I enjoy seeing what a community can create within them.”
It must have been a bit of a shock to see your app being used by Googlers at IO. What was your initial reaction?
“Yes, it was quite a shock. It had never crossed my mind that the employees of Google could be using my app, never mind it being featured at their biggest event. I see it as a serious milestone in the project’s life to be included amongst Google’s work.”
Do you think that running a full desktop OS on a device such as Glass will become commonplace, or will users prefer to stick with a lightweight and minimal interface?
“I think that both have their places. Clearly for day-to-day use a desktop operating system isn’t practical, but it does have it’s uses – particularly when you are talking about using a command line and command line tools. Clearly, with the limited size of the glass’ screen, the use of a desktop GUI is prevented; it’s certainly not going to be able to run a web browser. However, when resolutions improve, this could become more possible. As it is, the screen is large enough for a command line and I like the idea of being able to develop and compile code from a HUD on the move.
I do feel that in general it won’t become commonplace for the average user to run a full desktop OS on the glass because for most people, a desktop operating system is a word processor and an web browser. There is no general need for them to have access to developmental tools. The minimal, easy to use system is preferred by the average user.
However for advance users and developers who want to tinker with their glass and unlock the full power of the device, running a desktop OS on the glass would make a big difference.”
What are your thoughts on Glass in general?
“I believe that the Glass is a fantastic product, and is something that I am itching to get my hands on. Obviously the idea of a HUD is nothing new, but I think that Google have taken the idea in such a way that the result is second-to-none. There is no other device like this and although there is still a lot of room for improvement, by the time Google release to the general public I think it will be a well polished and usable device. The fact it runs Android is great because you are able to run a far better range of apps, including my own. This also makes the process of ensuring apps are Glass compatible much easier. I am looking forward to getting my own Glass and discovering it’s full potential.”
What originally motivated you to begin the Linux On Android Project and is the project still going?
“The project originated from a desire to get Linux running on my HTC Desire S. The idea and method used in the project is nothing new, but we seek to make it a universally accessible platform (as long as you are rooted). After developing the project and creating a tutorial in XDA, there was a clear demand for the project as people started asking me to help them get it running on their devices. It was at this point that we started creating the universal method, and from there the project really took off.
Yes, we are very much still going. We are working on new improvements constantly, including new Linux Distros and making the app more universally accessible in terms of the languages it has been translated in to and the number of devices it can now run on.”
Considering our recent focus on helping those new to app development, could you tell us a little bit about your methodology, process, and perhaps any tips you might have for aspiring developers?
“Trial and error is definitely the key here. There is a great range of Open Source apps available which you can study the source code for and learn from. This is something I strongly recommend anyone to do. Although the phrase is “don’t fix something that isn’t broken”, I can’t help myself but to continue improving the app and adding new features.
My biggest tip would be to never stop learning. Always look to better your knowledge. The Android platform is always changing, and you have to change with it.”
Tell us a little more about the new projects you mentioned earlier.
“SlapOS on Android is a branch of LinuxonAndroid using our Ubuntu install as a base to then install the SlapOS software, allowing your android device to integrate with your SlapOS cloud, with this every Android device can become a cloud node!
XML games is a new project A friend of mine and myself have just set up and launched on kickstarter. XML Games aims to allow the players themselves to easily and quickly create new game levels using a predefined set of XML tags. Coupled with an XML web platform, players can view and share each other’s levels online, unlocking the possibility of endless new and unique gameplay!
Using XML to design levels allows for us as the developers to make the levels and games completely cross platform. This opens players to an ever growing range of different levels all of which can be designed by anyone on any platform.
Once you have made your levels, they can be shared on the XML Games website community. Allowing anyone to browse and download to play. The hope here is that users can head onto their PC, code their own levels with the help of our handy guide, and then head onto their phone, and download their own level!
We plan to start out on Android creating a few open source games, but with enough funding hope to expand onto other platforms and more games!”
Given the Linux theme here I have to ask, what is your personal distro of choice?
“Primarily I use Ubuntu for work as I like its stability, however I do enjoy playing with Arch Linux because of its customisability.”
If you’d like to follow up on anything mentioned by Zac, check out the links below.
May 28, 2013 By: Will Verduzco
You may recall that just two days ago, we covered a guide showing you how to use Robotium for automated application testing. Now, it looks like XDA Senior Member EatHeat‘s handly little thread has received a rather significant revision.
When the previous article went live, we noted that EatHeat was planning an addition to his post to cover Robotium’s ability to test apps using only the APK, rather than source code. They say that good things come to those who wait, but apparently they didn’t specify how long you’d be waiting. The update has now been added to the guide.
As with before, the mojo behind this is the open source Robotium project. If you would like to learn more about Robotium, visit their Google Code page. If you’d like to take a peek at their source and/or fork some of that action, head over to their GitHub page. And finally, if you wish to learn how to use Robotium’s APK testing functionality, head over to the guide thread‘s second post.