Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разработка для мобильных устройств / 18 сообщений из 18, страница 1 из 1
12.01.2010, 10:56:59
    #36404762
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Есть мысль написать программку для мобильных устройств. Знаю C#, Java и немного C++. Сейчас склоняюсь к андроиду, но это не более чем вкусовщина. Вопрос в том, на чем (под какую платформу) целесообразнее писать сейчас и возможно ли написать код который бы [относительно] легко портировался на другие платформы?
...
Рейтинг: 0 / 0
12.01.2010, 10:59:55
    #36404768
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
что бы портировался легко, есть жаба.
остальное (вроде) сильно завязано на родные оси.
...
Рейтинг: 0 / 0
12.01.2010, 11:01:35
    #36404771
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Жаба понятие растяжимое. Качну андроид SDK, напишу софтину, а как ее пом под WM или симбиан заводить?
...
Рейтинг: 0 / 0
12.01.2010, 11:24:42
    #36404821
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Саабразим Аль-каши БуханиЖаба понятие растяжимое. Качну андроид SDK, напишу софтину, а как ее пом под WM или симбиан заводить?
Начните с J2ME. Будет и под андроидом работать и где угодно.
Поставьте себе NetBeans - и вперёд.
...
Рейтинг: 0 / 0
12.01.2010, 11:30:35
    #36404835
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ShSerge,
Мне понадобится СУБД отличная от полностью унылой, в андроиде глаз положил на SQLite, кроме того, посматривал на Android Market (ну и App Store и иже с ним для других платформ). Если вопрос с распространением для J2ME приложений как-то наверняка разруливается (хотя сходу не соображу как лучше), то с СУБД - засада.
...
Рейтинг: 0 / 0
12.01.2010, 11:49:16
    #36404878
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
имхо Java - сразу в топку, ничего дельного из нее не получается (я еще не видел действительно приличных приложений на яве с нормальным потреблением (и без того ограниченных) ресурсов)
с другой стороны, оно кросска

Смотрите на платформу, которую собираетесь покорять:
для WinMobile это дотнет mobile device (Compact .NET Framework)
для iPhone свой SDK и Objective C
под симбиан - вообще отдельная песня.

Короче, кросски скорее всего не получится.

4 8 15 16 23 42
...
Рейтинг: 0 / 0
12.01.2010, 12:23:15
    #36404956
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Я много программ написал для J2ME. Были игры - пасьянсы, вывод онлайн-карты города на мобильный телефон, декодирование двумерных штрих-кодов с телефонной фотокамеры и т.д. .
ПС. Быстродействие не зависит от того "на чём написано", потому что, обычно, используются нативные классы, реализованные производителем аппаратно.
...
Рейтинг: 0 / 0
12.01.2010, 12:28:27
    #36404970
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ShSerge,
Нет ощущения, что платформа будет уже неактуальна через пару лет? Как я понял, J2ME приложения на WM запускаются с бубном, на андроиде тоже.. А как распространяете если не секрет?
...
Рейтинг: 0 / 0
12.01.2010, 12:45:07
    #36405021
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Саабразим Аль-каши Бухани...Нет ощущения, что платформа будет уже неактуальна через пару лет?...
Это я уже лет эдак 5 слышу.
Хотя, всё может быть. Я не думаю, что программы живут дольше, чем платформы. Свою актуальность программы, как ни крути, теряют быстрее. Да и не жалко. Будет новая платформа, перейду с удовольствием. Кстати, на данный текущий момент, наиболее актуальна вэб-технология.
На C# я тоже пишу. Профессионально на работе. И сейчас открыта визуалстудия на другом мониторе. Но сравнивать C# с явой не имеет смысла.
ПС. Как распространяю? Хе-хе, я не распространитель, а программист. Пасьянсы - только у меня на мобильнике. Другие некоторые проекты умирают гораздо быстрее, чем заканчивается работа над ними. Однако же, польза от них (в смысле опыта и знаний) большая.
...
Рейтинг: 0 / 0
12.01.2010, 12:50:45
    #36405042
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ShSergeКстати, на данный текущий момент, наиболее актуальна вэб-технология..
этой "платформе" лет 20, не меньше

ShSergeНо сравнивать C# с явой не имеет смысла.
это одно и тоже, если вдуматся, просто разные бренды.
...
Рейтинг: 0 / 0
12.01.2010, 12:56:16
    #36405057
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ShSergeКстати, на данный текущий момент, наиболее актуальна вэб-технология.

поясните плз мысль. Это по-моему зеленое и сладкое.
...
Рейтинг: 0 / 0
12.01.2010, 13:11:48
    #36405108
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Кстати, на счет кроссплатформенности . Уже по крайней мере два штука.
...
Рейтинг: 0 / 0
12.01.2010, 13:55:54
    #36405228
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Aklinэтой "платформе" лет 20, не меньше
Поменьше. Хотя, второй десяток лет уже ею занимаюсь.
Aklinэто одно и тоже, если вдуматся, просто разные бренды.
В смысле языка - да. Заметна разница только, когда с событиями работаешь. Ещё в яве нет partial классов. Но, вообще-то, да, одно и то же.
2 Бухани.
Для работы с базами данных это Вам очень даже подходит. Единственный минус (он же и плюс), что обращение к базе происходит только в режиме онлайн. Минус, что когда "вне доступа" - обращение не сработает. Плюс то, что если потеряете своё мобильное устройство - база сохранится, да и обращатся к ней могут несколько пользователей одновременно. Да и СУБД у Вас будет не игрушечной, а самой той, что круто.
...
Рейтинг: 0 / 0
12.01.2010, 14:03:39
    #36405248
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ShSergeМинус, что когда "вне доступа" - обращение не сработает. Плюс то, что если потеряете своё мобильное устройство - база сохранится, да и обращатся к ней могут несколько пользователей одновременно.

Траффик.. Деньги.. Жаба.. =)
...
Рейтинг: 0 / 0
12.01.2010, 14:19:28
    #36405289
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Саабразим Аль-каши БуханиТраффик.. Деньги.. Жаба.. =)
Обращение к сети происходит только тогда, когда Вы чего-то делаете, а не повремённо. Да и к тому же, цены на мобильный интернет дешевеют с фантастической скоростью. Так что, если всерьёз и надолго - весьма рекомендую.
...
Рейтинг: 0 / 0
18.04.2010, 04:57:58
    #36584088
okdoky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
Вот написал для Android. Очень простая получилась. У кого есть вопросы к коду спрашивайте. Претензии также принимаются

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
package net.smans.loof;

import java.io.File;
import java.io.IOException;
import net.smans.db.Session;
import net.smans.db.Warning;
import net.smans.outfit.ZC;
import android.content.Context;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;

public class Smansi extends Activity {
    EditText result;
    EditText entry;
    Session ss;
    int result_focus =  0 ;
    int last_position =  0 ;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
            Context c = getApplicationContext();
            File root = c.getDir("db", Context.MODE_PRIVATE);
            ss = new Session(root.getPath());
        } catch(IOException exc) {
            exc.printStackTrace();
            return;
        }
        result = (EditText) findViewById(R.id.result);
        result.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub
                EditText et = (EditText)v;
                if (hasFocus) {
                    last_position = et.length();
                    if (result_focus ==  0 ) {
                        result_focus =  1 ;
                    } else if (result_focus ==  1 ) {
                        result_focus =  2 ;
                    }
                    et.setSelection(last_position);
                } else {
                    last_position = et.getSelectionStart();
                }
            }
        });
        entry = (EditText) findViewById(R.id.entry);
//      String query = "r[a]/b";
//      String query = "\"RESULT: {= r[b='b2']/a}\";";
        String query = entry.getText().toString();
        if (query.length() >  0 ) {
            String create0 = "$base demo =;";
            String create1 = "r'r1'[a'a1',b'b1'] =;";
            String create2 = "r'r2'[a'a2',b'b2'] =;";
            ss.smans(create0);
            ss.smans(create1);
            ss.smans(create2);
            ss.smans(query);
            String report = ss.report();
            String nl = System.getProperty("line-separator");
            if (nl == null) {
                ZC.NL = " \n";
                System.setProperty("line.separator", ZC.NL);
            }
            result.setText(
                 "-- EXAMPLE WITH XPATH" + ZC.NL +
                 "-- " + create0 + ZC.NL +
                 "-- " + create1 + ZC.NL +
                 "-- " + create2 + ZC.NL +
                 "-- " + query + ZC.NL +
                 report
            );
        }        
        entry.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int key, KeyEvent event) {
                if (key != KeyEvent.KEYCODE_ENTER)
                    return false;
                if (event.getAction() != KeyEvent.ACTION_DOWN)
                    return false;
                result.append(execute());
//                result.bringPointIntoView(result.length());
                return true;
            }
         });
    }

    protected void onPause() {
        try {
            ss.close();
        } catch(Exception exc) {
            result.setText(exc.toString());
        }
    }
    
    String execute() {
        Editable e = entry.getText();
        String script = e.toString();
        if (ss.smans(script) >  0 )
            return ZC.NL + "--" + script + ZC.NL + ss.report();
        Warning w[] = ss.warnings();
        ss.clearWarnings();
        StringBuilder sb = new StringBuilder(ZC.NL + "--" + script);
        for(Warning w1: w) {
            sb.append(ZC.NL).append(w1);
        }
        return sb.toString();
    }

}
...
Рейтинг: 0 / 0
18.04.2010, 05:07:48
    #36584090
okdoky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
И вот такие вот возможности этой штуки под названием Smansi :
Smansi, это - интерактивный интерпретатор работающий в среде Android и поддерживающий диалог с базой данных на языке Smans. Smans - не естественный язык, пользователи должны знать по крайней мере XPath. Однако, этот XPath-подобный язык используется и для запросов и для обновления. Структура базы данных на столько гибкая, что её лучше использовать как записную книжку или редактируемую справочную, а не только как набор простых таблиц.

http://savtechno.com/indexru.html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Smansi: Simple start of interaction
Following is a simple example describing typical Smansi interaction using Smans language. 
User declares current database (main.sdb) where he wants enter data in:
$base main= ;
He enters into device a new record:
meeting#[person'bob',time'1PM',day'march 11']= ;
Then to find all the meetings on  11  he makes a query: 
$x:=meet%[day='march 11'] ;
Now, the $x variable keeps all the meetings on March  11 . To see only persons, user types query like this: 
$x/person ;
He marks the found $x records as important (by 'remember') and changes date by few statements: 
$x[mark:'remember',day'march 12',]= ; -- adds mark and new day
$x[day'march 11']!= ; -- removes old day 
To see result, user prints correspondent table for all $x meetings:
pt($x) ; -- prints table
Another day. He prints all that marked by 'remember' in other, more suitable than table view:
pr(*'remember'/*) ; -- prints relation
...
Рейтинг: 0 / 0
25.04.2010, 18:48:27
    #36597121
okdoky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка для мобильных устройств
ОК. Чтобы не смущало уберу, все, что связано с Smans Database, оставлю только оболочку UI для Android. На месте SmansDB может быть любая другая БД.

Весь этот интерфейс по сути два текстовых поля. Одно маленькое снизу entry для ввода утверждений. Они могут быть на языке прикрепленной СУБД. Я использовал Smans, так как он проще и выразительнее SQL. Другое окно result для всего того, что реплицируется из базы данных. Это напоминает Oracle SQL+ для Андроид.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
package ...;

import java.io.File;
import java.io.IOException;
//DB import...
import android.content.Context;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;

public class Smansi extends Activity {
    EditText result;
    EditText entry;
    int last_position =  0 ;
    String nl = System.getProperty("line-separator");
    if (nl == null) {
        nl = " \n");
    }
//DB parameters and variables ...
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
            Context c = getApplicationContext();
            File root = c.getDir("db", Context.MODE_PRIVATE);
//DB connection open ...
        } catch(IOException exc) {
            exc.printStackTrace();
            return;
        }
        result = (EditText) findViewById(R.id.result);
        result.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub
                EditText et = (EditText)v;
                if (hasFocus) {
                    et.setSelection(last_position);
                } else {
                    last_position = et.getSelectionStart();
                }
            }
        });
        entry = (EditText) findViewById(R.id.entry);
        String query = entry.getText().toString();
        if (query.length() >  0 ) {
            String report;
//DB DEMO statement execution query -> report ...
            result.setText(
                 "-- EXAMPLE WITH SQL/XPATH" + nl +
                 "-- " + query + nl +
                 report
            );
        }        
        entry.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int key, KeyEvent event) {
                if (key != KeyEvent.KEYCODE_ENTER)
                    return false;
                if (event.getAction() != KeyEvent.ACTION_DOWN)
                    return false;
                result.append(execute());
                return true;
            }
         });
    }

    protected void onPause() {
        try {
//DB connection close ...
        } catch(Exception exc) {
            result.setText(exc.toString());
        }
    }
    
    String execute() {
        Editable e = entry.getText();
        String script = e.toString();
//DB statement execution of script ...
        return "...REPORT...";
    }

}
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разработка для мобильных устройств / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]