What is CourseApp ?
CourseApp Final Presentation :
CourseApp Final Report :
http://www.uio.no/studier/emner/matnat/ifi/INF5261/v11/studentprojects/android/FinalReport_INF5261.pdf
What is CourseApp ?
CourseApp Final Presentation :
This is a summay of the tricks I have learned making an application called courseApp project. This application was developed in the Mobile Information Systems that I took at University of Oslo. Eclipse is a very good tool to use for Android development. To start with you need to download Andriod SDK. After installing both of these(and ofcourse Java Development Kit, JDK which is a pre-requirement for both of these), you need to make Eclipse and Android SDK talk together. This is done by a plugin called “ADT plugin for Eclipse” from Google. You can read more about how to install this plugin by clicking here. In case of Android SDK installation(the exe file) doesn’t recognize JDK on your computer, you can simply download the zip file and extract it. Don’t forget appending that folder to the %PATH% environment variable. Now some more tips follows :
background color for your layout :
add the following code to your layout XML code(#ff32cf is the color code)
android:background="#ff23cf"
Background Image for your layout :
1- Add the image you want to the layout folder of your project.
2- Add the following code to your layout XML code
android:background="@drawable/bbg"
EditText features :
one of the features I want to talk about is android:singleLine which is very useful. If you want to get some info from the user, this text box is a good tool to use, but make sure you set the SingleLine variable to true. If not if they paste a 20 lines of text by mistake your whole GUI gets out of shape. Also if you want to use this for example to write an email text, then this should be set to false as you want it to contain several lines. The good thing about several lines EditText is that they do have scrolling function.
<EditText ... android:singleLine="true">//Single Line box for getting email address </span><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; white-space: pre;"><EditText ... android:singleLine="false">//Multi Line box for getting email text
in case you want limit the number of lines of an EditText:
<span style="font-family: monospace; font-size: 12px; line-height: 18px; white-space: pre;"><EditText android:layout_width="fill_parent"</span> <pre><code> android:layout_height="wrap_content" android:gravity="center" android:singleLine="false" android:lines="5" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" /></code><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
Simple Item List :
Setting up a simple Item list with an already filled Arrayadapter.
static final String[] COUNTRIES = new String[] {"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra","Angola", "..."}
<pre>setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, COUNTRIES));
getListView().setTextFilterEnabled(true);</pre>
Drop Down List :
In Android drop down list is a little bit complicated to give value to. You first need to add one Spinner to your layout and then connect it to
String[] Countries = { "India", "France", "Japan", "China", "U.S" };
// //////////////////Countries Spinner/////////////////////////////////
SpinnerCountries = (Spinner) findViewById(R.id.Spinner01);
// //////////////////////////////////////////////////////////////
// create an arrayAdapter an assign it to the spinner
AdapterCountries = new ArrayAdapter<CharSequence>(this,
android.R.layout.simple_spinner_item);
AdapterCountries
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerCountries.setAdapter(AdapterCountries);
int lenCountries = Countries.length;
for (int i = 0; i < lenCountries; i++) {
// test += Areas[i] + "\n";
AdapterCountries.add(Countries[i]);
}
Disabling the Landscape Mode :
You have two ways to do this, either in the code, or in the XML layout file :
XML :
</span><span style="font-family: monospace; font-size: 12px; line-height: 18px; white-space: pre;"><activity android:name=".SomeActivity"</span> <pre> <pre><code> android:label="@string/app_name" android:screenOrientation="portrait"></code>
OR in the code :
[/java]
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation[/java]
Layouts in Android :
LinearLayout :
LinearLayout aligns all children in a single direction — vertically or horizontally, depending on how you define the orientation attribute. All children are stacked one after the other, so a vertical list will only have one child per row, no matter how wide they are, and a horizontal list will only be one row high (the height of the tallest child, plus padding). A LinearLayout respects margins between children and the gravity (right, center, or left alignment) of each child.
TableLayout :
TableLayout positions its children into rows and columns. TableLayout containers do not display border lines for their rows, columns, or cells. The table will have as many columns as the row with the most cells. A table can leave cells empty, but cells cannot span columns, as they can in HTML.
RelativeLayout
RelativeLayout lets child views specify their position relative to the parent view or to each other (specified by ID). So you can align two elements by right border, or make one below another, centered in the screen, centered left, and so on. Elements are rendered in the order given, so if the first element is centered in the screen, other elements aligning themselves to that element will be aligned relative to screen center. Also, because of this ordering, if using XML to specify this layout, the element that you will reference (in order to position other view objects) must be listed in the XML file before you refer to it from the other views via its reference ID.
On Thursday I hold one of the most difficult presentations of my life. I was representing Robotica Osloensis, a student community which I am deputy chairman of, at Ignite Oslo. I talked about Rapid Prototyping which we use as our main method at Robotica in our projects. Ignite is a style of presentation where participants are given five minutes to speak on a subject accompanied by 20 slides. Each slide is displayed for 15 seconds, and slides are automatically advanced. The Ignite format is similar to Pecha Kucha, which features 20 slides displayed for 20 seconds each.
The Ignite Oslo was a very nice event. They had 5 minutes presentations about different topics which were very interesting. Presentations about art, film making, music composition with applications on iPad, 3D printing, air balloons and fashion, etc. It was pretty stressful when it came to my turn. The whole idea of 15 seconds intervals and having a lot to say about a subject that actually belongs to the nerd world made me very nervous. Thanks to my friends Magnus Lange and Ole Jacob, who helped me both about the content and preparing in advance for the presentation, I was well prepared. Also I should thank my friends who came there to support me when I was actually holding the presentation. My presentation can be downloaded by clicking here.
I am currently working on OpenCV image processing library beside my work on my master thesis. OpenCV and its image processing capabilities can give Walloid a powerful tool for decision making.
Since today Walloid has entered a new functional phase with zero positioning, Current position and formulated positioning functional. For more update visit Walloid weblog.
This is a school project for a course(INF5261 – Development of mobile information systems and services) I take at department of Informatics at University of Oslo. courseApp is an android mobile application which allows the users(students at University of Oslo) to add their courses to this application and respectivley receive the latest updates about the course on their cellphone. We also are thinking about integerating the time & place of the courses with the students android calender. We have plans for further development of this application but this is all dependent on if we can get access to the database in StudentWeb. If we do so we would be able to let students add courses to navigate through the courses and join the course by just one touch click …
We have thought to have following functionalities on our program(numbers show also priority).
read more about our project at Our Wonder Document.
People innvolved :
The RepRap project; an open source 3D printer, with all the technologies including inside it is a magnificent piece of technology to learn and study deeply. A combination of chemistry, physics, computer science, robotic technology and etc. Something that is produced by prosumers for prosumers(or even consumers as you don’t have to develop it further). A good that belongs to the non-rival(or even anti-rival), non extendable part of the production world. A product of CBPP in the public domain which in 5 years since Adrian came up with the idea, has managed to build a strong community in many different countries all around the world, dedicated developers around it and last but not least three functioning versions of 3D printers. I am honored to say that I am leading this project at Robotica Osloensis. Our first objective is to study and learn the RepRap concept and later take part in the development of this artifact. More updates on this project later.


This project is an ongoing rapid prototype which is under development by Puya Afsharian & me …
Requirements :
4 x step motor
4 x El. Magnet
1 x Arduino
1 x Thin Aluminium plate
Components :
Magnet #1
Magnet #2
Magnet #3
Motor #1-1
Motor #1-2
Motor #2-1
Motor #2-2
Algorithm & states :

and again to Lift state
New semester has begun here at university of Oslo & it is me again with bunch of new courses I have taken beside my full time job. It is always hard to do so, but at the same time the feeling of achieving my goals and sometimes failing is always good to have. I have to be very much structured to reach my work, studies and top of all my free time activities :-)
This semester I am investing on Human Computer interaction, Open Source programming, Evolutionary programing. Beside all I am working on my thesis(Walloid) which hopefully will be finished before May 2011.