Games and applications for Android
- Morse code and other ciphers - in
- Faster than Morse
- Snake: The New World
- Damone - Italian Checkers
- Discreet presentation timer
- The silent presentation timer is the ultimate presentation timer ever - invisible with minimal distraction.
Just keep the phone in your pocket and be guided by discreet vibrations
indicating key phases of your presentation!
- Google Play
- User's guide
- Dive into the world of ancient Summer and try your hand at governing city of Babylon for a ten year term of
office. Face natural disasters and unpredictable crop yield... and when all
this is OK, you will yet have to cope with the population explosion. Enjoy the eight bit classic game from the
old times when games were written in BASIC!
- Google Play -
Interesting reading on Android development Below you can find links to some books, papers, blogs, .... which
I read and found interesting. I wish you a pleasant reading :-). The page is
under constant updating, come later and you will find more, here.
Some books on software design
- Andrew Hunt,
David Thomas. The Pragmatic Programmer: From Journeyman to Master A
classical book full of sound advices for any programmer
Boswell, Trevor Foucher. The Art of Readable Code. O'Reilly Media 2011 A
very good book on coding styles, with lots of hints on how to write code which is simultaneously easy to
understand and the risk of a bug inserted during coding is reduced.
Freeman et al. Head First Design Patterns: A Brain-Friendly Guide A nice
introductory book to the fundamental design patterns, I can only recommend for every beginner.
- Robert Nystrom. Game Programming Patterns. A
catalogue of design patterns used during game development with lots of
interesting details on their implementation (speed, memory efficiency, ...). Useful reading even if you are
already familiar with common design patterns.
- Alistair Cockburn. Agile
Software Development: The Cooperative Game (2nd
Edition). A great book on agile project management not only for software development. I learned a lot from
- Alistair Cockburn.
Crystal Clear: A Human-Powered Methodology for Small Teams:
A Human-Powered Methodology for Small Teams Description of the Crystal family of methodologies for agile
development, their properties, pros and cons, and case studies - definitely a
must-read for anyone working in agile environment.
Fowler. Refactoring Catalogue of refactoring techniques
with examples; the book actually shows how to improve structure of an existing software system to achieve better
readability, ability to better accomodate changes and improve
maintainability. It is a must read for any programmer!
- Roy Osherove. The Art of Unit
Testing. A great book on software testing, testability and on software
design in a way so as it is testable - including lots of examples.
Interesting WWW resources
Some things on tools
- Java 14
- Strings in Java
- Java and memory management (garbage collector is a great thing, but does not solve all issues)
- Java has garbage collector... so you are safe from memory leaks, right? Wrong! Your application still
can leak memory and crash with out of memory exception. Some interesting
links related to this topic follow: Eight Ways Your Android App Can STOP
Leaking Memory. There
are more blog posts on this topic available at the internet, see e.g. this
one and maybe this one... and
many others, use Google :-). My
favourite memory leak is a reference to activity in a thread or inner class :-).
- Java has more types of references than you may expect - among others interesting are weak references
and soft references: Types Of
References In Java : Strong, Soft, Weak And Phantom - a brief
introduction to all the types of the references. Details can be found in the Java reference manual (package
- Speaking about memory allocations - when I was writing my Damone game, I was dealing a
lot with the speed optimizations of Java code. I needed the MiniMax algorithm calculating the next move of the
computer to be as fast as possible. One thing which helped a lot was to reduce the number of memory
allocations as much as possible using prepared pools of object and getting rid of
"unnecessary" complexity. Some hints on this can be found e.g. in Developing for
Android II The Rules: Memory.
- And on the topic of garbage collectors, I recently stumbled upon the following three blog posts
on the Java garbabe collectors:
- Class Loaders - how can we modify the way in which Java loads classes?
Some useful thoughts