240 likes | 368 Views
Programming YOUR Mobile Phone. Professor Simon M. Lucas School of Computer Science and Electronic Engineering. Mobile (Cell) Phones. First prototype: Motorola 1973 Commercial cell phones : NTT Japan 1979 Motorola 1983 DynaTAC 8000X ($4,000) Subscribers: 300,000 in 1984
E N D
Programming YOURMobile Phone Professor Simon M. Lucas School of Computer Science and Electronic Engineering
Mobile (Cell) Phones • First prototype: Motorola 1973 • Commercial cell phones : • NTT Japan 1979 • Motorola 1983 • DynaTAC 8000X ($4,000) • Subscribers: • 300,000 in 1984 • Over 3,000,000,000 now! • So much more than just a telephone…
Samsung Galaxy S II (2011) • Android phone • GPS, Motion Sensors, Video etc • Powerful processor • 3G WIFI Router! • 1gb RAM + 8 GB Flash mem+ SD • 1.2Ghz dual core processor800 x 480 Super AMOLED Plus screen • Kindle! • Programmable in Java • Very open marketplace for apps • Newer handsets • Faster processors • Even more sensors (e.g. Barometer) • Cleverer: attention detection
Tetris • Developed by Alexei Pajitnov in 1985 • With the help of Dmitry Pavlovsky and Vadim Gerasimov • Popular in the west in 1986 • The classic ‘casual game’ of all time
EA Mobile • Tetris used to top of the sales charts for mobile games • Still popular on smart phones • But no longer tops the charts • Why?
Well, almost… • The Java language may vary slightly between versions available for each platform • New platforms such as Android have significant new APIs • API = Application Programmer Interface • Some effort needed to port an application to a new platform • But at least with Android, you can use the familiar Java language
Developing Mobile Java Apps • Write Java for mobile platform • Using suitable API / platform e.g. Android • Test on emulator or device • Deploy to mobile marketplace? • Or direct to phone • E.g. Google Play • Can be free or paid-for apps • Get detailed download and usage stats • Measure detailed aspects of users / players performance • Use the stats to refine your app… • Game data mining on a massive scale
Modelling Tetris: Object Oriented Approach • Objects group together: • Data • Actions that can be performed on them: • Methods • In Java, each object is of a particular class • Programming: design classes • Make objects of those classes • What sort of classes might you design for Tetris?
And we get … • Controller • Main loop + event handling • View • Only concerned with display of game objects • Model • Game model (2d array of blocks) • Shape model
Summary • Mobile phones: incredible technology • RF, hardware, telecoms, software • Programming should be (and is!) lots of fun • Java’s a great language – Android is a great mobile platform • Modern IDEs take the pain out of software development • Study computing and electronics: be part of a bright future! • Fortunes to be made in App Development!