Android Samsung Nexus S: Short Review

Posted July 10th @ 11:21 pm by Boyan Tsolov

Android Samsung Nexus S

Android Samsung Nexus S

I’ve been neglecting the blog for a while.. sorry RSS subscribers.

I bought the HTC Magic 2 years ago when it first came out in Canada. That’s why most of my blog posts about Android development are from 2 years ago :).

I decided it was time to get the latest and greatest Android phone in Canada: the NEXUS S. A friend currently working at Google on Android highly recommended the device. And the fact that the phone is unlocked, Rogers will not put its apps on it, and Google will push updates directly to the phone without Rogers mandating when, made it even easier to pay the $300. In Canada the phone currently sells for $99 on a brand new contract, but you know how North America works: if you already have a contract you are not as enticing to the carriers as a brand new client with no contract. So, I had to pay a few fees to get the phone for $300 instead of $100.

I won’t go into a full review of the phone. There are plenty of sites that review the phone and have been doing it since the beginning of the year. I will only review a couple of items that I was worried about and you might be too if you are looking at getting this phone (or just got it).

Read the rest of this entry »


Advertisement


Windows Phone 7: Beginner’s Guide to Developing on Windows Phone 7

Posted September 26th @ 4:05 pm by Boyan Tsolov

IHeartWP7

The official release date for Windows Phone 7 is October 11th (in the US). Word around the internet is that it will be released in Canada around the end of October / beginning of November. LG, Samsung, HTC, and Dell have all developed handsets that will be available in Canada. One of the services we offer at my place of employment is mobile development and since we are a Microsoft Gold Partner, developing on Windows Phone 7 is our forte (actually it’s the only mobile development we do). I assume as this platform gets bigger more people will jump to learn how to program on it, so this is a quick-and-dirty list of resources that will help you to learn about programming on Windows Phone 7.

  1. http://developer.windowsphone.com/
    If you are a developer, the first thing you need to do is visit the developer’s home page. You can download tools from here, read about the SDK, look at sample code, and get questions answered in the forums.
  2. http://silverlight.codeplex.com/releases
    You must download the Silverlight Toolkit for Windows Phone 7. It has alot of great Silverlight controls that will make your app much cooler. For example, the version of the SDK and Silverlight that you get from the first link does not have a calendar control. The Toolkit from this link has a DatePicker and a TimePicker control that you can just plop on your page and use.
  3. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit
    The best place I have found for guides, best practices, code samples, etc was Channel9. This is the home page.
  4. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight
    I particularly like the home page for Silverlight on WP7. There are a ton of tutorials here, the ones I found most useful are listed below.
  5. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/WindowsPhoneNavigationAndControlsLab
    How to handle navigation, going back and forth between pages, the best practices for setting up your pages.
  6. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/ApplicationLifetimeWP7Lab
    Very important read on the application life cycle of a WP7 app.
  7. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/LaunchersAndChoosersWP7Lab
    Working with launchers and choosers. Launchers and choosers are parts ofthe API that allow you interact with the Windows Phone 7 first-partyapps, such as the email client, calendar/agenda, contact list, messaging app, etc.
  8. http://channel9.msdn.com/Learn/Courses/WP7TrainingKit/WP7Silverlight/UsingPivotAndPanoramaControls
    This tutorial shows you how to make your apps have the cool Windows Phone 7 feel with the sliding between screens (called pivot and panorama controls).
  9. http://www.silverlight.net/learn/videos/all/windows-phone-application-bar/
    Great tutorial video on how to set up the application bar at the bottom of your app. The video also shows the different customizations that you can do to the application bar.
  10. http://channel9.msdn.com/Blogs/SlickThought/Simplify-Page-Transitions-in-Windows-Phone-7-Silverlight-Applications
    Getting the cool fade-in, fade-out page transitions to work. This effect is done by using the TransitioningContentControl that comes with the Silverlight toolkit (an extra install from link #2). Note: this tutorial was done on the April release of the Windows Phone 7 SDK, the latest SDK is slightly different.
  11. Read the rest of this entry »


Samsung may drop Windows Mobile and switch to Android

Posted November 10th @ 11:36 pm by Boyan Tsolov

I just found this article from reddit…
Samsung may drop Windows Mobile for Android

Apparently Samsung is going to stop using Windows Mobile on its cellphones and will concentrate on Android!! I have been a supporter of Android since its inception and stories like these bring tears of joy to my eyes.

Oh, and there’s something about Samsung rolling out their own open source OS called “Bada”. Good for them.


Android: Simplified source code for parsing and working with XML data and web services in Android

Posted July 19th @ 10:05 pm by Boyan Tsolov

In my previous post I linked to a terrific website (Working with XML on Android) which describes how you can read and parse XML documents in Android. The code supplied by that website used polymorphism to show 4 different methods for parsing the XML data. I vowed to simplify that and share the new source code.

To download the AndroidXmlSimple project click here. You will be taken to another page where you can click to download to the ZIP file.

Below are some instructions on setting yourself up with this source code and customizing it for your own XML data.

Read the rest of this entry »


Android: Reading, using and working with XML data and web services in Android

Posted July 19th @ 8:37 pm by Boyan Tsolov

One of the most powerful aspects of any mobile application for a 3G phone is that it can connect to the Internet. By connecting to the Internet the application can offer much more value to the user since it becomes an interface for a web-based component, e.g. using Twitter’s API to create a Twitter application so that you can get your Twitter updates without having to open the mobile browser. The most common way of interfacing with a web-based component is by using web services in XML format.

While trying to developer my own app which reads a web service from my own server, I ran into a lot of difficulties in implementing the client that consumes the web service. Android does not have libraries for XPath handling of XML documents, so it makes deciphering XML data a little bit more difficult. From what I’ve read online the Android team is currently working on including such libraries in future versions.

After some digging around I found an amazing link that shows different methods for consuming an XML file in Android and parsing through it without the use of XPaths. The link is this: Working with XML on Android. To start off, this link is an absolute must-read. Everything that I am going to write in my post here relates to this link. The code offered on that webpage uses polymorphism to show you 4 different methods of working with XML data. It provides a fully-functional Android application and all the source code for it. The source code can be found here: AndroidXML.zip.

My post today will concentrate on how to customize the code from the application in the above link, in order to read and parse your own XML data. If you are a Java pro, you might not need this post. My Java is a little rusty, so I needed some time to figure out exactly what I had to change and where in order to get this to work with my own web service XML. Now that I’ve figured it out, I thought I’d share it. In my next post I will give the simplified version of this code – where there is no polymorphism, and thus there are only the minimum number of classes needed to implement this XML-reading solution. I can’t offer this simplified code right now – because I haven’t coded it yet :).

So until I post the simplified source code for working with XML data in Android, here are some tips on getting through the larger polymorphism-based source code and customizing it for your own XML data:

Read the rest of this entry »


Android: Creating TableRow rows inside a TableLayout programatically

Posted July 1st @ 10:07 pm by Boyan Tsolov

In my quest to create a “Taxman” Android application I ran into the following problem:

I want to ask the user to enter their yearly income, after which the screen will flip and their after-tax income will be displayed in a table format for all Canadian provinces. (And for the future: all US states). The problem I ran into is creating a TableRow for each Canadian province in my main.xml. There are 13 provinces and territories, so 13 is not that bad to copy & paste in the main.xml; however, as soon as I have to copy & paste more than 2 times I start cringing and nausea kicks in. Personally I think “copy & paste” should not be in the programming vocabulary. Not only that, but I have 13 provinces now, what about when I have to enter 50 states! So, I had to find a way to create these new TableRow rows programmatically inside my TableLayout layout.

A great source for code snippets and answers to Android questions is http://www.anddev.org. I’m sure if you’re dabbling with Android then you’ve already come across this site. The particular post I read to do this is this one: Dynamically add rows to TableLayout. Commenters on that post were having problems getting this to work, but after I imported all the correct classes (android.widget.TableRow.LayoutParams is an important one to use) everything worked from the first time. I forced Eclipse to find most of the classes for me.

Below is the code from anddev.org, with my changes for my Taxman Android app. I’m too lazy to do a full-out beginning-to-end tutorial for this code snippet.

First I set my constants at the top of the Activity class:

public class Activity1 extends Activity implements OnTouchListener{

    int PROVINCE_Alberta = 0;
    int PROVINCE_BC = 1;
    int PROVINCE_Manitoba = 2;
    int PROVINCE_NewBrunswick = 3;
    int PROVINCE_Newfoundland = 4;
    int PROVINCE_Northwest = 5;
    int PROVINCE_NovaScotia = 6;
    int PROVINCE_Nunavut = 7;
    int PROVINCE_Ontario = 8;
    int PROVINCE_PEI = 9;
    int PROVINCE_Quebec = 10;
    int PROVINCE_Saskatchewan = 11;
    int PROVINCE_Yukon = 12;

    int numProvinces = 13;

Read the rest of this entry »


Android: Switching screens by dragging over the touch screen

Posted May 29th @ 12:17 am by Boyan Tsolov

In this post I will show you how to use the touch screen so that you can drag your finger across the screen, and it will switch the screen for you – “iPhone style”!

For this I will be implemented OnTouchListener and overrided the method OnTouch().

To start off, we need to create an Activity with two screens. The two screens will be implemented using a ViewFlipper in the main.xml layout file. Follow the steps in this blog post to set yourself up: Android: Switching screens in an Activity with animations (using ViewFlipper).

1. Now that you have yourself set up, open the Activity1 class.

2. Make the class implement OnTouchListener. The top of the class will look like this:

...
import android.view.View.OnTouchListener;

public class Activity1 extends Activity implements OnTouchListener{
...

2. You will have to override the OnTouch() method as well. If you were using eclipse, it might have created the method stub for you:

    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        // TODO Auto-generated method stub
        return false;
    }

Here is the method that you need to use instead:

    public boolean onTouch(View arg0, MotionEvent arg1) {

        // Get the action that was done on this touch event
        switch (arg1.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            {
                // store the X value when the user's finger was pressed down
                downXValue = arg1.getX();
                break;
            }

            case MotionEvent.ACTION_UP:
            {
                // Get the X value when the user released his/her finger
                float currentX = arg1.getX();            

                // going backwards: pushing stuff to the right
                if (downXValue < currentX)
                {
                    // Get a reference to the ViewFlipper
                     ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                     // Set the animation
                      vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
                      // Flip!
                      vf.showPrevious();
                }

                // going forwards: pushing stuff to the left
                if (downXValue > currentX)
                {
                    // Get a reference to the ViewFlipper
                    ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                     // Set the animation
                     vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
                      // Flip!
                     vf.showNext();
                }
                break;
            }
        }

        // if you return false, these actions will not be recorded
        return true;
    }

What I’ve done is added a CASE statement. On press down of the finger we save the current X value. On press up of the finger, after the dragging motion has finished, I check the X value again. I compare the two X values and I make a logical decision whether I should switch the screens forwards or backwards.

Read the rest of this entry »



Advertisement

Options:

Colors

  • bea test
  • vince young uncle rico
  • chicago bears 96
  • tea party hobbits
  • tea party agenda
  • checkers
  • bengals youth jerseys
  • hijack
  • contactor
  • zara phillips wedding date
  • connecticut renaissance faire
  • bengals usa
  • search engines for jobs
  • search engines zuula
  • chicago bears garter
  • la ink season 6
  • zara phillips facebookzara phillips gossip
  • zara phillips guest list
  • damon
  • dist 95
  • bea 4603
  • connecticut 100 club
  • compared
  • dreamweaver
  • new england patriots underwear
  • c span kozol
  • la ink yahoo answers
  • search in vi
  • msnbc
  • tea party nj
  • chad ochocinco height and weight
  • dues
  • vince young endorsementsvince young foundation
  • mcmillan
  • bengals tryouts
  • battleship aurora
  • trademark
  • search 3 bodybuilding other index
  • chad ochocinco quits football
  • search engines visibility
  • di's hallmark
  • 1904
  • formal
  • regions
  • carrollton
  • mtv oddities
  • vince young injury
  • bengals cheerleaders tryouts 2011
  • freida pinto chanel
  • zara phillips and the queen
  • zara phillips shoes royal wedding
  • barns
  • vince young rumors
  • chad ochocinco wedding date
  • freida pinto dev
  • vince young jay cutler
  • sqlserver
  • 4pm cspancspan area 51cspan 90.1
  • connecticut state parks
  • bengals hard knocks episode 1
  • chad ochocinco to patriots
  • search engines images
  • connecticut sun
  • chad ochocinco age
  • la ink tattoos
  • achievements
  • battleship history
  • chad ochocinco bears
  • chad ochocinco yesterday
  • goto
  • search 5500
  • hp support englandhp support forum
  • battleship galactica
  • connecticut 5 star resorts
  • bengals 08 schedule
  • vince young 2008
  • randy moss university
  • bengals images
  • bengals cats for sale
  • la ink 105
  • benelli
  • search engines rankings 2011
  • chicago bears tattoos
  • connecticut post
  • chad ochocinco free agent
  • giro
  • la ink map
  • chad ochocinco yesterday
  • search engines internet
  • chicago bears 17 lisa lampanelli
  • recommended
  • hp support error 1005
  • hp support number united states
  • la ink youtube pixie
  • chicago bears 08 record
  • thinking
  • greg olsen puzzles
  • fireworks
  • c span video contest
  • hp support helpline
  • safeway
  • chicago bears 08 record
  • mortage
  • fight
  • workout
  • 1983
  • hp support center
  • connecticut natural gas
  • search cfisd.net
  • greg olsen vikingsgreg olsen wife
  • c span yesterdayc span zelaya
  • barn
  • bengals games
  • new england patriots 50
  • bea fox
  • mtv music awards
  • mtv website
  • dohc
  • c span 4 to 5
  • greyhound
  • projections
  • rico
  • bengals job fair
  • search engines 9
  • zara phillips wedding plans
  • cuties
  • vince young 99 yard video
  • courts
  • battleship bismarck wreck
  • dis windsor wi
  • tea party chicago
  • bea oracle
  • paco
  • dis quand reviendras-tu
  • mtv 90s music videos
  • search and seizure
  • randy moss 98 vikings
  • freida pinto miral
  • mtv 5 cover
  • mtv 2 schedule
  • search 2.0
  • bea karp
  • anemometer
  • chad ochocinco vs skip bayless
  • hp support contact us
  • vince young released
  • mtv true life
  • new england patriots jake locker
  • bea goldfishberg
  • battleship 3d game
  • la ink games online
  • bea luna
  • chicago bears tickets
  • freida pinto zac posen
  • battleship yamato 2010
  • chicago bears zip hoodie
  • tea party obama
  • greg olsen vancouver
  • new england patriots espn blog
  • search engines usage statistics 2010
  • bea 71 16
  • chicago bears football club
  • la ink 03x05
  • zara phillips baby
  • quartz
  • bea nipa
  • bea 71 series staples
  • randy moss jail
  • hp support venezuela
  • dis x
  • freida pinto boyfriend
  • copa
  • bea spells a lot
  • blade
  • zara phillips school
  • booster
  • wrist
  • greg olsen combine
  • vince young uncle rico gif
  • zara phillips royal wedding picture
  • zara phillips engagement ring
  • hp support repair
  • mtv overdrive
  • vince young yahoo stats
  • new england patriots 98.5
  • hp support 6500a plus
  • new england patriots store
  • search protocol host
  • greg olsen puzzles
  • dialup
  • mixed
  • greg olsen football