Уточню сразу, что я ни разу не программист и с любым программированием связан очень мало (подправить вёрстку; понять, откуда берётся переменная в php; понять, что это java, а это objective c и подобные вещи я умею. Не более).
В связи с тем, что основная деятельность оставляет достаточно свободного времени - решил углубиться в программирование. В веб и мобайл. Т.к., именно на данный момент, цели стать сильным %название языка%-программистом нет, я решил попробовать из веба и мобайла всего по чуть-чуть. Как известно, помимо учебников и мануалов, лучше всего язык+технология изучается тогда, когда сразу приступают к практике и попыткам сделать какой-либо продукт.
Основная часть, суть вопроса.
Хочу сделать приложение под Android и iOS. Суть приложения в двух словах: это чат, где можно найти собеседника по критериям, но всё равно именно кого-то найти нельзя. Т.е., я вижу это приложение так - человек заходит в него, выбирает критерий (допустим, "хобби - авто") и его соединяет в чат с тем же человеком, кто выбрал этот критерий. Но т.к. выбрать этот критерий могут 10 человек, его соединят только с одним из. В процессе чата можно переписываться (естественно), делать фото на камеру и отправлять в окно чата.
Ещё хотелось бы, чтобы собеседник знал, на каком расстоянии он находится от другого собеседника. Т.е., допустим, "вы соединились с собеседником, который тоже любит автомобили и сейчас она находится от вас в 135 километрах".
История чата сохраняется только 5 минут, ну и ещё немного таких мелочей.
В общем и целом - вот такое приложение хочу сделать. Нужно/не нужно - вопрос другой, мне это просто интересно.
Список вопросов, на которые хотелось бы увидеть ваши ответы:
1. Для реализации такого приложения достаточно ли знать Java (для Android) и Objective C (для iOS)? Не нужно ли знать ещё какие-то языки или технологии? Если нужно ещё что-то знать - подскажите, пожалуйста, что?
2. Насколько сложно написать такое приложение под Android и iOS? Если я начинаю учить эти языки с нуля, то, теоретически, могу ли я что-то похожее, пусть кривоватое и сырое, сделать за месяц? Три-пять-год?
3. *не до конца представляю, что сейчас спрошу, но кто шарит - тот поймёт:
Можно ли написать какой-нибудь веб-сервер на PHP+MySQL, который будет сердцем таких приложений, а уже сами приложения у клиентов на Android и iOS будут представлять собой простейшую систему, которая будет красиво оформлен и будет взаимодействовать с сервером?
4. Как вообще пишутся приложения такого типа? Какие технологии используется и как выглядит примерно схема работы таких приложений? Какие нужны языки программирования?
5. Если говорить строго о функционале, который я указал выше - сколько теоретически (хотя бы примерно, всё понимаю, что конкретики без чёткого ТЗ не бывает) может стоить разработка такого приложения для Android/iOS?
Заключительная часть.
Друзья, небольшая просьба для тех, у кого есть свободных 15 минут в день и возможность/желание ответить на пару вопросов и провернуть мысль в нужном направлении:
очень хотелось бы иногда и недолго общаться со знающими людьми. Поисковики и форумы - это современно, но иногда нужно вот скинуть в окно мессенджера какой-то вопрос, который займёт у опытного человека 2 минуты, и получить краткий ответ. Или не вопрос, а какое-то мнение о чём-либо в программировании.
Всё понимаю, время - деньги, никто не хочет сидеть и писать простыни-мануалы - это всё и не нужно. Достаточно просто знать, что у тебя в контактах есть человек, который, в случае застревания или обдумывания как сделать лучше, просто укажет направление и скажет, что стоит погуглить.
Если у кого есть желание время от времени помогать советом - оставьте, пожалуйста, какие-нибудь ваши контакты. Что вам удобно, чем вы часто пользуетесь. Интересует разработчики, который работают с вебом (HTML+CSS+JS и PHP+MySQL, или альтернатива) и с мобайлом (Android и iOS). Гарантирую тактичность и умение правильно задавать вопросы, минимально занимая ваше время.
Ну а нет, так нет. В любом случае, спасибо что зашли и уделили внимание моей проблеме!
Сделать хороший чат очень не просто. Я писал телеграм на андройд, и в общем это тягостная задача. Но реализуемая.
1. В теории этого достаточно. На практике это невозможно. Изучить два языкы и особенности двух сильно разных платформ с нуля будет очень проблематично. И долго. Рекомендую пойти в сторону какого-нибудь кроссплатформенного фреймворка, типа PhoneGap. Или же можно попробовать гибридный, типа Xamarin, только он дорогой.
2. Если в свободное время я бы закладывал по 2-3 месяца на платформу минимум
3. Вам в любом случае нужен сервер. Не уверен что PHP + MySQL подойдет, но например NodeJS вполне. В сочетании с PhoneGap (например) вам нужно изучить только 1 язык - JavaScript. А в сочетании с Xamarin - только C#, а на нем все что угодно написать можно.
4. Чтобы узнать как пишутся, почитайте например "Совершенный код" Макконелла или что угодно у Джоэла Спольски
5. Я довольно плох в оценке стоимостей, но мне видется в районе 100к за платформу.
Objective C требует достаточно высокой квалификации даже для его изучения.
Если Вы говорите, что "ни разу не программист", то может быть будет более практично взять какую-нибудь задачу попроще, и на ней начать изучать программирование на Objective C. Все-таки осваивать лучше постепенно, от простого к сложному. А описанная Вами задача потребует хороших навыков даже для опытного программиста.