views:

150

answers:

7

This isn't a platform specific question - rather I'm interested in the general platform independent areas of computer science that are particularly relevant to mobile applications development.

For example, things like compression techniques, distributed synchronisation algorithims etc.. what theoretical concepts have you found relevant, useful or enabling when building mobile apps?

+7  A: 

Human-computer interaction is an important consideration, when you consider that mobile devices have all sorts of inputs that a "normal" computer would not - such as touch screens (with multi-touch), one or more microphones, camera(s), etc...

Justin Ethier
Plus the fact that a user can tap or touch anywhere on the screen rather than mouse-in/mouse-out.
GalacticCowboy
Exactly - many (all?) of the rules have changed with regard to input. Another I forgot to mention is an accelerometer input to detect physical tilting and shaking.
Justin Ethier
+4  A: 

Taken from embedded software development is the habit to handle scarce resources such as CPU load and battery life.

mouviciel
+1  A: 

process calculi

fearofawhackplanet
That looks interesting, thanks
MalcomTucker
+2  A: 

My 2 cents: Augmented reality, NFC (RFID)

fravelgue
That NFC link is great, thanks
MalcomTucker
+1  A: 

I don't understand why "All of computer science" isn't relevant. (even things large large scale computing is relevant: you can't have a small device in your hands that does really complicated stuff on large scale unless there's a big engine someplace else).

Ira Baxter
HPC techniques tend to not apply to the device itself. Maybe to other parts of the overall service system, but a mobile device is going to be always constrained to be a client component without significant power available. (Thus you can keep your 500-core MPI jobs off it! ;-))
Donal Fellows
+1  A: 

Derecursivation (turning recursive code into an iterative loop) came handy once because some systems try to limit the default available stack size.

Pagination (how the OS splits heap memory into "page" units) is useful to understand when deciding the size of temporary buffers.

QuickRecipesOnSymbianOS
+1  A: 
ewernli