Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

4 March 2013

Useful link: how to design message box/pop-up/window to cofirm to perform action.

Interesting post about  how to design  message box/pop-up/window to confirm to perform action.

Most important conclusion is

  • Always Use Verbs as Button Labels

Links:
http://ux.stackexchange.com/questions/9946/should-i-use-yes-no-or-ok-cancel-on-my-message-box
http://ignorethecode.net/blog/2008/10/31/nobody-reads/

3 March 2013

How to make simple game in Android part 4 - Design

WARNING!
Few honest informations.  
I have a few years experience in software developer BUT  I am NOT a game developer! I am NOT an expert. 
This guide was written by person who want write game as part of hobby and make dreams come to true (As i want to write simple RPG game in future).   
 I put best efforts to write  accuracy informations, but I cannot guarantee the perfect accuracy of all content in this  articles  on this blog.
I do not take any responsibility or liability for any error, omission , inaccuracy
or destructions!


How to make simple application and/or game in Android

BASED ON GAME EXAMPLE: 
DOMS COUNTRIES, CAPITOLS, FLAGS AND CONTINENTS QUIZ GAME

 TO DOWNLOAD GAME

Part 4. 
DESIGN


It is a time to design a game. It will be quite easy.

Main menu will have four options New Game, High Scores, About, Tutorial
1.     Tutorial will display plain text in pop-up and explain how to play all types of game. In general, best way to do tutorial is 'in game tutorial', where you teach user step by step how to do it all basic things. For simplicity, .I used a Pop up with Plain text in this game, which is ok'ish but you need remember that not too many people bother to boring tutorial, these days.
2.     About will display info about me (explain, who I am), game (quick info about game), Eula and thanks.
3.     High Scores will display pop up with info about best scores for each game type.
4.     New Game will display pop up with selection game type (Country of the world, Capital of the world, flags of the world)

DESIGN.

A different person has a different way to design.
Some people do not do design at all. It is no problem, if you are experienced developer and you write a quick simple application, but for any other cases, you should design your application. It makes your implementation easier, quicker and reduce chance to re-write program from starch due major error or on requirement change. Requirements almost are always changed during development. Remember this Heraclitus quote: "Nothing is permanent except change".
There are many design styles depends on various factors like project's size, scale etc. However, some of you will think: “Wow, that's awesome Mr. Smart ass, but still I have No idea how to start. Help me, Mr. clever.”
If you have problem with design stage, then here are some tips:
1.     Understand requirements and split them into pieces that can be represent a task (For example: write/edit/read a file in format .LOL)
2.     Think about usability. About what? Usability is about, how to use Ur app from brainless user point of view. If you do not know anything about it, follow official android guidelines. Why? User will be familiar with patterns learnt during using OS.
3.     Design program flow as simple as possible and keep in mind that Ur app should be design for future update.
4.     Think spilt feature from your application into task (save file, convert from one format to other, save/load data to/from database etc.)
If you do simple app, then u don't need do all design but it's good habit to follow this as it saves you from ,mistakes tat cause total rewrite of code.  Believe me, it is worth to do it. One more time. Remember this Heraclitus quote: "Nothing is permanent except change".


How looks my design for this project:

My design was split into task. Each task represent piece of work (like feature) and it has own design. How I look my design process for this game? As you know from planning stage, I have done list of features. I want implement. I tried to establish how much I must do to achieve my aim for this challenge.
:-) (for example country list, trivia, settings, custom game)
this is a short list of task:
  •  game flow as mind map
  • GUI for menu,
  • GUI for menu items,
  • GUI for classic game flow level*n times->result,
  • about,
  • high scores,
  • tutorial,
  • level,
  • result,
  • country list file,
  • file loader and validation,
  • country of the world,
  • capitals of the world,
  • flags of the world,
  • saper mode.



My list was stored on Kanban board.
This is how example of task looks:


 I draw game flow (unfortunately i deleted)but I have not done class diagram.

For bigger and proper project is a good habit to do class diagram and user cases, but for small protects like this is not essential. Well. If u do project for somebody then is good to have user cases as it helps understand your client requirement.

I usually starts from UI for task as I like to see and test usability of my app.
then I do a core of app, so I can then do rest in any order (like test).

My design is split into two types:
General, where I planning and design fundaments of application
Task specific, where for each task, I follow iteration for:
 Research<->design<->implementation<->refactor and testing <-> done

that's give me flexibility to adapt to changes that ALWAYS happen during development.

That is all my design for this project.
I hope this part explains a little bit about design stage
Remember about kiss principle .depends on your project’s size and complexity.
I believe most important is to make sure that u happy with usability and direction in your design and it meets your requirements.
Be open to changes during development as they WILL OCCURED during development

in next parts (5 and 6) I will show most interesting snippet of my code. There are not an example a superb coding, but it will give you idea for one of possible solution...
Part 5: {writing in progress}.
Part 6: {writing in progress}.

(Part 5 and 6 are still work in progress ,however part 7  Testing  ,part 8. Add project to Google Play ,part  9. How to be rich from application.  and part 10. Summary   are  done and  there are in this blog.(Just click on links.

Feel free to left suggestions and comment. I am happy to answer and improve my tutorial

18 February 2013

How to make simple game in Android part 3 - Planning

WARNING!
Few honest informations.  
I have a few years experience in software developer BUT  I am NOT a game developer! I am NOT an expert. 
This guide was written by person who want write game as part of hobby and make dreams come to true (As i want to write simple RPG game in future).   
 I put best efforts to write  accuracy informations, but I cannot guarantee the perfect accuracy of all content in this  articles  on this blog.
I do not take any responsibility or liability for any error, omission , inaccuracy
or destructions!


How to make simple application or game in Android

BASED ON GAME EXAMPLE: 
DOMS COUNTRIES, CAPITOLS, FLAGS AND CONTINENTS QUIZ GAME

 TO DOWNLOAD GAME

Part 3 
PLANNING


It this part I will explain how I prepare, plan and setup my project.

I start from list of things, which is good to do and remember during preparing and planning:
1.       Write down all ideas and conclusions from brainstorm - as best ideas and solution for your problems appear in most unexpected moments. In toilets, just before go to sleep. Always write them somewhere!
2.       Create a “to do” list. It is many way to do .Starts from notes on piece of paper (notepad in your device) through program for task management, GTD-like application or Kanban like application.  Make sure that you setup priority (Most practical are (must have, maybe have, useful to have). I using Kanban to  
3.       DO BACKUP and keep it in external place (for example: If you work on PC at home. Your backup should be keep NOT at home.You must store backup in different place like cloud service(Dropbox) , pendrive at parents home etc.). 
4.       Use your favourite source code management. I recommend using Git. What is source code management? Here is link to Wikipedia article about it: http://en.wikipedia.org/wiki/Source_code_management 
5.       Whatever you do always follow KISS priniple ( KISS stands for: Principle Keep it simple ,stupid(or sir). Good article about that can be found here: http://people.apache.org/~fhanik/kiss.html
6.       Collect all interesting resources and keep source information (in this example, I collected all flags), sounds and data/algorithms that will be useful during implementation.
7.       If you have any problems with planning particular parts of you application use UML software for class design, user cases or flow. Mock some UI using UI designers in Eclipse or IntelliJ IDEA), to see how things look and allow you to test usability of your application or game. Make some quick user cases.
8.       If you planning to be a professional software developer. You can start select to use specific methodology or use some "software development methodology" principles to improve your skills. I suggest read at least this: http://en.wikipedia.org/wiki/Software_development_methodology .If you want. try one of plenty methodologies like  Agile ,Incremental , Iterative , V-Model , Spiral , Scrum   , FDD ,   TDD ,  XP and many more. (Btw. Forgot about waterfall is worst approach, as it will doom you, if requirement changes over time, which happen even in my doms countries capitals flags quiz example, where I added a new game mode and change high score). I usually used Kanban based methodology and it works fantastic for me (however, I loosely followed my Kanban board.).
9.     Write down all bugs, which you find in one place. In can be in your to-do list or you can use bug tracking software .I used

This and design stage are very important.
Why? As more effort you put it, then you will lower your chance to re-write your code. You will be more flexible for adapt to unexpected changes. Do not design everything upfront (like in waterfall methodology). Think more about flow, cases and usability and prepare task-list with prediction for how important it is and how difficult/how much time it will take. Tasks should be designed and implemented independently.

Important: this is only suggestion .Choose what can be useful for you.
How I planned my game?

This how looks my setup and planning for my project

I used IntelliJ IDEA as IDE. I used some agile and Kanban principles as methodology. I used Kanbanize.com as my Kanban board ,where I store my brainstorm idea, task list , bug tracking and as visual process management (to visualise workflow, manage flow and to-do list, manage adaptation for changes in requirements).I use Git as my source code management and my own program called nanobackup to do .. backups (that were stored internally and on Dropbox).
For simple game as doms countries, capitols, flags and continents quiz game that was based on previous project it was a bit easy, but this is shortcut of how I done it. I started from brainstorm. All ideas from brainstorm I added into task list. I put all task on Kanban board (I used kanabinze.com). I collected most data (flags, icons) and add/edit/remove task during my free time prior start of implement specific tasks.

I draw some UI to play with usability and with game flow. I used UI builder for Android that can be found in IntelliJ IDEA (better tool can be found in Eclipse). I decided then priority and task order for each task/feature. I create a text file with my loose plan about what will be including for each main release (v0.4, v0.5, v0.6, v0.8 and v1.0 (unfortunately I deleted file with info, what was in each release).
I play around with planning flow as part of test.
That is all.

Note: Even in small project like this one. Few elemnts in my plan changed few times during development. My planning is very flexible and it allowed me to fit these changes to development flow.

It was quick as my plan for this project was very similar to Dom’s learn Chinese game, so I followed pattern used in past.

Strategy vary depends on project size, deadline, complexity, your experience and many other factor, but do not worry too much about. If you just started, try to have some fun with planning and design that and allow a lot time for implementation.

 In next part, I will describe my design for “doms countries, capitols, flags and continents quiz game” with some example of uml ,task and etc.
Go to part 4: Design

13 January 2012

Design guidelines for Android by Google.

Google  announced that they published  Android Design Guidelines ( finally !).
Something which should be created ages ago as Apple done it for iOS, because it makes learning curve for android users much easier in future .

If you developing app for Android,you look here:
http://developer.android.com/design/index.html

22 December 2011

Useful link: Article about Android Usability

You can find bunch of useful information about by UI design and usability for Android devices written    by Juhani Lehtimaki on JavaLobby

http://java.dzone.com/articles/what-should-android-apps-look