There's a number of ways to go about developing apps / games for mobile devices.
For games, you can do it using a game engine like Unity, or UDK. Or you can write native games in Objective-c (iOS), Java (Android) or C# (Windows phone)
For apps, you have much more flexibility because you can write cross-platform apps using html5 and javascript or native apps in the languages above.
I think the easiest way to start out developing apps is with html5 and javascript using jQuery Mobile or PhoneGap, or Vaadin touchkit, which interprets Java into HTML5 and javascript.
I recommend Vaadin Touchkit if you already know Java. I use that to write most of my apps when I don't require any native functions from the phone (camera, gps, accelerometer, etc.)