Programovat pro android na Androidu? Nic není nemožné

Nemůžete se odtrhnout od programování ani když jste mimo PC? Máte mobil/tablet s Androidem a nejlépe i HW klávesnici. Já tyto 2, resp. 3 podmínky splňuji a proto jsem si do své Sony Ericsson Xperia Mini Pro nainstaloval aplikaci AIDE (Android IDE), která mi splnila sen si programovat i když nemám po ruce PC.

Samozřejmě že na mobilu, zvláště s 3” obrazovkou to má jisté omezení. Paradoxně to ani není tak ta obrazovka, protože písmo je dostatečně rozumně nastavené, že ho vidím perfektně i z dálky a zároveň nezabírá moc prostoru na obrazovce.

Celkově se mi na mé Xperii vejde na šířku 18 řádků kódu, to není tak špatné, program pracuje pouze v režimu celé obrazovky takže méně by to bylo pouze kdyby jste si nastavili větší písmo a to bude podle mě zbytečné, viz ^.

Je to rychlost psaní na klávesnici, ale to bude asi pouze můj problém – doufám že si ten mobil, který jsem už koupil takhle z druhé ruky, neznicím – teď mluvím o klávesnici. Je to totiž velmi příjemná změna v tom programování přeskakovat mezi desktopovým C# a “Androidovskou” Javou a doufám že to tak i zůstane. Příjemné je to i v tom že Java je trochu jiná než C# a donutí mě jinak přemýšlet, nejen jet ve zajetých kolejích.

A když to je na mobilu a ještě v tom specifickém Android “jazyku”, tak o to to je ještě lepší. Na mé Xperii jsou kurzorové šipky do všech směrů, klávesa Shift, klávesa “Alt” která přepíná co jednotlivá klávesa pošle za znak na zpracování a klávesa SYM která v jiném programu dovoluje zadat hlavně smajlíky ale zde je překryta a zadává se pomocí ní složené závorky které nejde zadat nijak jinak na klávesnici. Všechny ostatní znaky jako jsou základní matematické, nebo závorky () nebo středník, tečka, čárka se dají zadat normálně z klávesnice což urychluje práci.

A co že jsem to vlastně naprogramoval? Není to nic jednoduššího než jen 2 tlačítka na které se vypíše aktuální čas po kliknutí na právě stisknuté.

P1050443

Aplikace v praxi:

screenshot_2012-12-01_1725

Celý zdrojový kód:

CODEpackage com.mycompany.myapp;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.content.*;
import java.util.Date;
import android.util.*;
import android.view.ViewGroup.*;
public class MainActivity extends Activity implements View.OnClickListener
{
    LinearLayout ll;
    Context c;
    Button btn1;
    Button btn2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    c = getApplicationContext();
    //AttributeSet je abstraktni trida, nelze ji vytvorit nijak
    //AttributeSet as = new AttributeSet();
    //-LinearLayout.LayoutParams take nejde vytvorit nijak protoze nema definovan zadny kontruktor
    //LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams();
    btn1 = new Button(c);
    updateTime(btn1);
    btn1.setOnClickListener(this);
    btn2 = new Button(c);
    updateTime(btn2);
    btn2.setOnClickListener(this);
    ll = new LinearLayout(c);
    ll.addView(btn1, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    ll.addView(btn2, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    setContentView(ll);
    }
    public void onClick(View view)
    {
    Button btn = (Button)view;
    updateTime(btn);
    }
    void updateTime(Button btn)
    {
    btn.setText(new Date().toString());
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *