|
Идеи для реализации приложения с ООП и многопоточностью? | ☑ | ||
---|---|---|---|---|
0
Esodinshik
17.06.21
✎
17:26
|
Хочу написать приложение на си-подобном языке, чтобы на практике понять ООП и многопоточность. Думаю для мобильных приложений написать - иначе какое бы ни было приложение, конечным пользователем его будет сам разработчик. А так может и копейки с рекламы получу - хорошая награда за первый проект.
В связи с этим вопросы: 1. Идеи, в которых можно гармонично и сложно реализовать ООП и многопоточность? (игры, программы) 2. Какие там гроши капают с навязчивой рекламы во время работы приложения/игры? Сложно ли прикрутить стандартные эти рекламные баннеры? 3. Сложно ли опубликовать приложение на плеймаркете? Юридически-бюрократически, так сказать? (аппстор не рассматриваю вообще) |
|||
1
fisher
17.06.21
✎
17:40
|
Обстоятельный подход. Перед каждым гугл-запросом - консультация на форуме.
|
|||
2
Garykom
гуру
17.06.21
✎
17:42
|
(0)
1. Идеи стоят денег. Идеи которые не стоят требуют много денег, т.е. бесплатно тебе только на минус много лямов идей накидают 2. Гроши сильно зависят от аудитории 3. И в гугл и в эппл не проблема опубликовать. Чисто технические и денежные сложности. |
|||
3
Конструктор1С
17.06.21
✎
17:59
|
(0) мобильные приложения это как бы не совсем про многопоточность. Там много асинхронного, фонового можно сказать, но так чтобы во много потоков скорее редкость
|
|||
4
BaZZiL
17.06.21
✎
18:18
|
В мобильном приложении потоки вообще не в моде. Корутины в Котлине теперь мейнстрим.
|
|||
5
sikuda
17.06.21
✎
18:22
|
(3) (4) "Когда мы создаем suspend функцию, мы должны позаботиться о том, чтобы она выполнялась асинхронно в другом потоке или вернула результат сразу. Если же мы напишем в suspend функции код, блокирующий поток, то слово suspend нам тут никак не поможет. Такая suspend функция просто заблокирует поток, в котором выполняется корутина."
|
|||
6
Ненавижу 1С
гуру
17.06.21
✎
18:22
|
(4) Котлин не си-подобен
|
|||
7
Serginio1
17.06.21
✎
19:02
|
(4) Вообще то async await как раз используют пул потоков. А потоки используют еще и куча сервисов.
То есть сейчас модно использовать не потоки, а задачи |
|||
8
Волшебник
модератор
17.06.21
✎
19:05
|
(7) Мне Android Studio подсвечивает, что класс AsyncTask уже устарел (@Deprecated)
|
|||
9
Конструктор1С
17.06.21
✎
19:18
|
(6) чё эта?
|
|||
10
ДедМорроз
17.06.21
✎
19:24
|
AsyncTask это не совсем отдельный поток.
Отдельный поток можно или через таймер или через исполнитель. Опять же,есть понятие BackgroundThread,который при переключении на другое приложение не блокируется. Реальная многопоточность на андорйде очень редко нужна,т.к.там нет задач,которым она требуется. |
|||
11
Garikk
17.06.21
✎
19:29
|
(2) идеи на самом деле ничего не стоят.
вот тебе идея - сделай яндекс.такси для крыма |
|||
12
ДНН
17.06.21
✎
19:37
|
(2) Для подтверждения аккаунта пин-код на почту должен приходить?
|
|||
13
Ненавижу 1С
гуру
17.06.21
✎
19:39
|
(9) ты его синтаксис видел?
|
|||
14
Резак
17.06.21
✎
19:53
|
(0) Сейчас мало смысла учить ООП, когда многие разработчики стараются отходить от этого устаревшего подхода в сторону функционального программирования.
Денег с рекламы не получишь на первом приложении, об этом даже не стоит задумываться. Рассчитывай только на получение неудачного опыта, это тоже ценное приобретение. Многопоточность - не понятно зачем тебе это сейчас нужно. |
|||
15
NorthWind
17.06.21
✎
20:15
|
(0) странный подход. Иди на работу - там задач накидают, да еще и денег за их решение заплатят.
|
|||
16
Ненавижу 1С
гуру
17.06.21
✎
20:49
|
(14) я бы сказал, что сейчас пытаются в симбиоз
|
|||
17
vde69
17.06.21
✎
21:15
|
(14) функциональное программирование - идея красивая, раализация ужас...
сейчас пишут или процедурно или ООП, |
|||
18
vde69
17.06.21
✎
21:18
|
(0) для мобильных приложений многопоточности нет....
Андроид поддерживает один активный поток имеющий текущий фокус ввода и службы, теоретически можно написать несколько служб для одного приложения, но это скорее всего зарубает антивирус... Короче на практике в приложениях на андроиде многопоточности нет... |
|||
19
Резак
18.06.21
✎
00:15
|
(16) Пытаются. Но таким консерваторам нужно по рукам давать, потому что сплошные костыли получаются, и развитие проекта тормозится.
|
|||
20
Резак
18.06.21
✎
00:17
|
(17) Так делают только программисты старой школы в возрасте, у которых мозг уже не способен воспринимать что-то новое.
|
|||
21
Garykom
гуру
18.06.21
✎
03:18
|
(12) если про App Developer то яблочный девайс нужен относительно современный
можно теоретически обойтись виртуалкой но ее сложно настроить так чтобы на нее приходил пин |
|||
22
Конструктор1С
18.06.21
✎
05:35
|
(13) видел. Это же укороченная Java
|
|||
23
Ненавижу 1С
гуру
18.06.21
✎
05:42
|
(22) вообще ни разу
|
|||
24
Конструктор1С
18.06.21
✎
05:47
|
(14) функциональное программирование ровесник твоеги бати. Так что не такое уж и модное-молодёжное
|
|||
25
Конструктор1С
18.06.21
✎
05:47
|
(23) на 100%. Котлин вырос из джавы и работает на JVM
|
|||
26
Paint_NET
18.06.21
✎
05:49
|
Хоспадя.
Да слепи ты пет-проект по классике, а ля "Домашняя бухгалтерия" с облачной синхронизацией и свистоперделками. Не надо пытаться это монетизировать, тебе ещё руку набивать и набивать, прежде чем сможешь писать годный софт. |
|||
27
Ненавижу 1С
гуру
18.06.21
✎
06:13
|
(25) спор был за си-подобный синтаксис. Причем тут jvm?
И синтаксис у него изначально другой |
|||
28
ДенисЧ
18.06.21
✎
06:20
|
У котлина синтаксис ближе к паскакалю )))
private var matrixWidth: Int? = null private val _result: MutableList<Vector> = mutableListOf() val result: Matrix = _result С вики кусочек примера. |
|||
29
Почему 1С
18.06.21
✎
06:56
|
(28) ага один в один, если только переменные объявлять
|
|||
30
Ненавижу 1С
гуру
18.06.21
✎
07:58
|
(29) ну тоже нет - скобочки разные {}
|
|||
31
Почему 1С
18.06.21
✎
08:24
|
(30) мы договорились в программе только объявлять переменные пакета, чтобы котлин был похож на паскаль
|
|||
32
Serginio1
18.06.21
✎
11:48
|
(8) Я на Xamarin. Там свои задачи
|
|||
33
Serginio1
18.06.21
✎
11:51
|
||||
34
Конструктор1С
18.06.21
✎
13:46
|
(27) да с чего бы у котлина был синтаксис не сишный? Его синтаксис подобен Java и C#
|
|||
35
Ненавижу 1С
гуру
18.06.21
✎
14:03
|
(34) см (28)
|
|||
36
Резак
18.06.21
✎
19:42
|
У всех языков программирования синтаксис в какой-то степени си-подобный.
У каких-то больше, у каких-то меньше. О чем спор вообще? |
|||
37
Garikk
18.06.21
✎
19:46
|
(36) а у фортрана чего-подобный синтаксис? или (у(лиспа))?
|
|||
38
Резак
18.06.21
✎
19:50
|
(37) Тоже си-подобный, но совсем-совсем немного!
|
|||
39
Garikk
18.06.21
✎
19:54
|
(38) ну да, за 10 лет до появления си, в фортране был немного си-подобный синтаксис ;)
|
|||
40
Резак
18.06.21
✎
20:47
|
(39) Почему бы нет? Никто ведь не утверждает что он произошел от Си. Даже если бы появился позже, это тоже бы не означало что за основу взят Си. Просто похожий синтаксис, не более того. Потому что любой другой синтаксис был бы неудобен. Именно поэтому все языки программирования так похожи друг на друга, что используют самую удобную форму написания кода. Ну может быть когда-нибудь придумают что-то кардинально другое и более удобное, но пока этого не произошло.
|
|||
41
Ivan_495
18.06.21
✎
23:43
|
под многопоточность вроде специальные языки были
|
|||
42
vde69
19.06.21
✎
09:33
|
(14) функциональное программирование я осваивал для автокаде 11 версии, 92 год...
И даже тогда это уже было далеко не ново... То есть 30 лет назад вовсю пытались что то делать на функциональных языках... И где они сейчас? Да функциональные языки имеют свою область применения, но они узко специальные языки. А вот чем всегда отличалась глупенькая молодёжь, так это тем, что постоянно выкапыпавают со свалки дерьмо и в него вляпываются |
|||
43
vde69
19.06.21
✎
09:35
|
(36) паскаль вообще ни разу не си подобный
|
|||
44
acht
19.06.21
✎
09:46
|
(43) Не рви шаблон паше, у него и так с этим тяжело. Про SQL еще вспомни =)
|
|||
45
Garykom
гуру
19.06.21
✎
09:50
|
(42) есть разные инструменты и в разных ситуациях лучше разные
где то императивное, где то декларативное в виде функционального |
|||
46
Вафель
19.06.21
✎
11:27
|
(43) ну память там вручную управляется. Значит в чем то си подобный
|
|||
47
vde69
19.06.21
✎
11:51
|
(46) тогда уж так: все языки где есть if - си подобные....
вообще паскаль появился раньше чем си, то есть паскаль по определению не может быть си подобным.... паскаль 68 год си - 72 год |
|||
48
ДедМорроз
19.06.21
✎
19:02
|
Так извините.
Если взять классический Си,где нет комментария через два слеша,где нет ссылок и значение в функцию можно только передать,а также только структуры и перечисления,то говорить,что какой-то язык Си подобный,будет сложно. А вот если посмотреть на Си++,то да,там очень сильно все расширили. Опять же,Си это работа с define,который пошел с ассемблера,да и сам Си от ассемблера недалеко вышел. Но,преобразование типов в любую сторону,и работа с памятью,как с байтами,это Си. |
|||
49
vde69
19.06.21
✎
20:29
|
(48) типовое си
1. отсутствие контроля выхода за границы выделенной памяти 2. работа с указателями как с адресом памяти 3. довольно вольное преобразование типов 4. тип данных void |
|||
50
acht
19.06.21
✎
20:40
|
(46) > Значит в чем то си подобный
Аргументация уровня: "SQL произносится по русски как СиКьюЭль, значит он Си - подобный" |
|||
51
acht
19.06.21
✎
20:48
|
(46) Вот еще хороший пример в тему "ручное управление памятью, значит си подобный":
Как думаешь, какой язык? |
|||
52
H A D G E H O G s
19.06.21
✎
21:27
|
Вот еще хороший пример упоротости C++ языков. Найдите ошибку.
case eMethodTestString: { wchar_t* base_wstr = L"Привет тест!"; WCHAR_T* return_wstr = nullptr; size_t iActualSize = wcslen(base_wstr) + 1; if (m_iMemory->AllocMemory((void**)&return_wstr, (unsigned)iActualSize * sizeof(WCHAR_T))) ::convToShortWchar(&return_wstr, base_wstr, iActualSize); TV_VT(pvarRetValue) = VTYPE_PWSTR; TV_WSTR(pvarRetValue) = return_wstr; pvarRetValue->wstrLen = iActualSize-1; delete[] base_wstr; delete[] return_wstr; return true; } |
|||
53
acht
19.06.21
✎
21:43
|
(52) О, кто-то пишет компоненту 1С и очищает память, ему не принадлежащую =)
|
|||
54
Кирпич
20.06.21
✎
13:58
|
(53) И непонятно зачем очищает. Сам же пишет "TV_WSTR(pvarRetValue) = return_wstr;" и через две строчки "delete[] return_wstr;"
А шо если не "if (m_iMemory->AllocMemory" и всё равно "delete[] return_wstr;" Херню писать можно и на паскале, а на счет C++ согласен. Слишком много кракозяблов. Глаза сломать можно. |
|||
55
NorthWind
20.06.21
✎
16:40
|
(52)
wchar_t* base_wstr = L"Привет тест!"; ... delete[] base_wstr; ну вот это явная фигня, память, выделенная под base_wstr - не динамическая. |
|||
56
Garykom
гуру
20.06.21
✎
17:00
|
(55) таки грохнет
|
|||
57
ДедМорроз
20.06.21
✎
19:36
|
На самом деле,как реализовано,это еще вопрос.
Если константа будет скопирована в динамтческую память,то ее нужно чистить,если же в памяти кода,то delete просто не отработает. |
|||
58
NorthWind
20.06.21
✎
20:55
|
(56) вполне может быть, но не то, что должен. Здесь не вполне понятно, что произойдет, неопределенное поведение. Может упасть, может визуально не произойти ничего, может быть утечка.
|
|||
59
ДНН
20.06.21
✎
21:57
|
wchar_t* base_wstr = L"Привет тест!";
А разве base_wstr не должно быть const? То есть вот так: const wchar_t* base_wstr = L"Привет тест!"; |
|||
60
Ненавижу 1С
гуру
20.06.21
✎
23:03
|
по поводу си-подобных, вот примерный список:
https://en.wikipedia.org/wiki/List_of_C-family_programming_languages |
|||
61
ДедМорроз
21.06.21
✎
00:05
|
(59) так для Си const не обязательно.
А в Си++ будет выдано предупреждение о том,что константа приводится к неконстанте. Опять же,Си не запрещает изменять константы,а только предупреждает,что это плохо. Ну и Си++ тоже. |
|||
62
Резак
21.06.21
✎
03:49
|
(43) Либо ты плохо знаешь Паскаль, либо плохо знаешь Си. Как можно утверждать что он не си-подобный? Рукалицо.
|
|||
63
Резак
21.06.21
✎
03:56
|
Паскаль:
writeln("Hello, World!"); Си: printf("Hello, World!"); Че, прям совсем не подобно? Ну ламеры. Я фигею с вас. |
|||
64
Конструктор1С
21.06.21
✎
05:10
|
(28) котлин во многом это джава, он джава-совместимый, легко работает с кодом джавы, может быть преобразован в код джава. Скопипащенный тобой код это объявление переменных класса, по-сути он такой же, как в Java и C#.
(35) это неудовлетворительный ответ |
|||
65
Конструктор1С
21.06.21
✎
05:24
|
Не понимаю вообще, как можно считать котлин не си-подобным? Продолжением и развитием дедушки Си был C++, который изначально представлял из себя Си обвешенным классами. Первое его название таким и было - Си с классами, потом уже плюсы приделали. Годами позже, сточив зубы об C++, компания Sun Microsystems родила Java, который сильно походил на плюсы, но позволял делать многие вещи проще, удобнее. Далее Microsoft посмотрела на Java и родила свою джаву, с блэкджеком и шлюхами, назвала её C#. И вот, десять лет назад JetBrains задумали родить убивцу Java, которая была бы полностью Java-совместимой, но попроще и впитывала в себя всё лучшее от Java, ну и с оглядкой на C#. Так родился Kotlin. А в 2021 году нашлись люди, которые догадались назвать его не си-подобным
|
|||
66
Андрей_Андреич
naïve
21.06.21
✎
05:28
|
(63) Сообщить("Здравствуй, Мир!");
|
|||
67
Резак
21.06.21
✎
06:03
|
(66) Именно!
|
|||
68
NorthWind
23.06.21
✎
11:32
|
(67) ну а как насчет остальных элементов синтаксиса, кроме вызова процедур? Операторные скобки, объявление переменных, использование слова then в конструкциях if и прочее?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |