вторник, 27 марта 2012 г.

Magic 8 ball для Android

Решил я тут опять потренироваться в разработке под Android - проверить, не всё ли уже забыл. Вспомнил, как мой товарищ Алексей, ещё живя в общежитии, написал Magic 8 ball из фильма "Траса 60". На C++, под консоль, но оно работало и даже отображало кириллицу. Решил написать нечто подобное для Android, код ниже.
package ru.qover.testing;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.util.Random;
import android.widget.TextView;

public class TestingActivity extends Activity {
    Random rand;
    Button btn;
    TextView text;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn = (Button)findViewById(R.id.button1);
        btn.setOnClickListener(getString);
        text = (TextView)findViewById(R.id.textView1);
        rand = new Random();
    }
    
    private OnClickListener getString = new OnClickListener()
    {
        public void onClick(View v)
        {
            Integer num = rand.nextInt(20) + 1;
            switch(num)
            {
            case 1:
                text.setText(R.string.s1);
                break;
            case 2:
                text.setText(R.string.s2);
                break;
            case 3:
                text.setText(R.string.s3);
                break;
            case 4:
                text.setText(R.string.s4);
                break;
            case 5:
                text.setText(R.string.s5);
                break;
            case 6:
                text.setText(R.string.s6);
                break;
            case 7:
                text.setText(R.string.s7);
                break;
            case 8:
                text.setText(R.string.s8);
                break;
            case 9:
                text.setText(R.string.s9);
                break;
            case 10:
                text.setText(R.string.s10);
                break;
            case 11:
                text.setText(R.string.s11);
                break;
            case 12:
                text.setText(R.string.s12);
                break;
            case 13:
                text.setText(R.string.s13);
                break;
            case 14:
                text.setText(R.string.s14);
                break;
            case 15:
                text.setText(R.string.s15);
                break;
            case 16:
                text.setText(R.string.s16);
                break;
            case 17:
                text.setText(R.string.s17);
                break;
            case 18:
                text.setText(R.string.s18);
                break;
            case 19:
                text.setText(R.string.s19);
                break;
            case 20:
                text.setText(R.string.s20);
                break;
            };
        }
    };
}
Строки засунуты в strings.xml, потому как это оптимальнее. Сами файлы strings.xml и раскладку (layout) main.xml выкладывать не стану, если кому сильно надо - пишите в личку, вышлю. Тем более, что каждый разработчик должен сам решать, как должны быть расположены компоненты интерфейса.

четверг, 15 марта 2012 г.

SharpDevelop

Сегодня я расскажу о такой замечательной вещи, как SharpDevelop. Это IDE с открытым исходным кодом. Написана она на .NET, и сама предпологает написание программ на этой платформе. Первое отличие от Visual Studio, которое бросилось мне в глаза - эта среда легче, быстрее, и генерирует более оптимальный и понятный код. Одно только название главной формы у Win32-приложения чего стоит ('Form1' у Visual Studio vs 'MainForm' у SharpDevelop). Так же заметил тесную интеграцию с svn. В студии эта интеграция тоже поддерживается, но её надо дополнительно настраивать, скачивая дополнительный плагин и долго с ним мучаясь. Помимо создания всех возможных видов приложений на VB .Net и C#, SharpDevelop умеет переводить эти языки друг на друга, а так же на Python и Ruby (этого я в VS тоже не встречал). Итак, если вы за open-source, если вы против пиратства и не работаете в компании, которая оплатит вам студию и заставит в ней кодить, если вы заинтересованны в создании проектов на среде .NET, то SharpDevelop - ваш выбор. Скачать это чудо программерской мысли и его исходники можно здесь. Сам пользуюсь 4.2.0 beta, и не заметил ещё ни одной причины, по которой она считаеться бетой.

пятница, 9 марта 2012 г.

Linux и Lenovo S10-3c

Давно известная проблема - на S10-3C ни в одном *nix из коробки не работает клавиатура. Сегодня покопался по форумам - проблема всего-то в устаревшей версии bios, перепрошился (причём перепрошиться можно только из-под Windows). Поставил Linux Mint. Работает и клавиатура, и даже wi-fi, но gnome 3 не для нетбуков. Да и в других DE виснет постоянно. Снёс. Решил вернуться к Ubuntu. Ах да, только сегодня узнал, что загрузочная флэшка должна быть отформатирована в FAT32, иначе загрузиться с неё не удастся. Это не блог про linux, но упоминать о нём я здесь буду. Скоро продолжу блогодвижок на Yii.