powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разработка для мобильных устройств
18 сообщений из 18, страница 1 из 1
Разработка для мобильных устройств
    #36404762
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть мысль написать программку для мобильных устройств. Знаю C#, Java и немного C++. Сейчас склоняюсь к андроиду, но это не более чем вкусовщина. Вопрос в том, на чем (под какую платформу) целесообразнее писать сейчас и возможно ли написать код который бы [относительно] легко портировался на другие платформы?
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36404768
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
что бы портировался легко, есть жаба.
остальное (вроде) сильно завязано на родные оси.
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36404771
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаба понятие растяжимое. Качну андроид SDK, напишу софтину, а как ее пом под WM или симбиан заводить?
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36404821
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши БуханиЖаба понятие растяжимое. Качну андроид SDK, напишу софтину, а как ее пом под WM или симбиан заводить?
Начните с J2ME. Будет и под андроидом работать и где угодно.
Поставьте себе NetBeans - и вперёд.
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36404835
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,
Мне понадобится СУБД отличная от полностью унылой, в андроиде глаз положил на SQLite, кроме того, посматривал на Android Market (ну и App Store и иже с ним для других платформ). Если вопрос с распространением для J2ME приложений как-то наверняка разруливается (хотя сходу не соображу как лучше), то с СУБД - засада.
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36404878
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо Java - сразу в топку, ничего дельного из нее не получается (я еще не видел действительно приличных приложений на яве с нормальным потреблением (и без того ограниченных) ресурсов)
с другой стороны, оно кросска

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

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

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

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

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

Траффик.. Деньги.. Жаба.. =)
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #36405289
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши БуханиТраффик.. Деньги.. Жаба.. =)
Обращение к сети происходит только тогда, когда Вы чего-то делаете, а не повремённо. Да и к тому же, цены на мобильный интернет дешевеют с фантастической скоростью. Так что, если всерьёз и надолго - весьма рекомендую.
...
Рейтинг: 0 / 0
Разработка для мобильных устройств
    #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
Разработка для мобильных устройств
    #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
Разработка для мобильных устройств
    #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]