Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Можно ли полноценно программировать под ios с обычного пк

Доброго времени суток. Я собираюсь собрать пк и думаю, если я установлю os X на виртуальную машину, смогу ли я полноценно программировать под ios? Будут ли какие-то ограничения? Какие минимальные характеристики компа для этого нужны?
Планирую загружать приложения в appstore.
Imac покупать не вариант
Ответ: как вариант хакинтош...
Вопрос: Обязательно ли наличие Mac OS X, чтобы программировать для iOS?

Доброго времени суток!
Хочу написать приложение для iPhone, в моем распоряжении есть ПК с Windows. Подскажите, пожалуйста, чтобы программировать для iOS обязательно наличие Mac OS X и, как следствие, ПК от Apple, или это можно делать под виндой или на ПК не от Apple с установленным каким-нибудь хакинтошем? И как на это будет смотреть компания Apple при выдаче разрешения на размещение приложений в iTunes?
Заранее спасибо!))
Ответ:
Сообщение от eugenk1
"Царь Аллериан потому и богат, что никогда не платит за то, что может взять даром". Намек надеюсь понятен Короче идем сюда , читаем и делаем.

...

И наконец о покупке девайса. Увы, без этого никак. На эмуле можно увидеть далеко не все. Я покупал ipod-4 touch с 8 гигами на борту больше года назад за 8500. Советую именно его.
все верно!

1) я нагуглил такую вещь: которая все указанные инструкции с Xcode выполняет за пару кликов мышкой;
2) я так же сделал, ибо нету смысла тратить большие деньжища;

единственное работаю на МакМини 2011 с 8 Гб оперативы, заказал на ebay в первые месяцы начала продаж этой железки и ничуть не жалею.
Вопрос: Собрать МАК из образа через ВМ на обычном МСИ

Добрый! Можно ли на буке МСИ собрать МАК через ВМ варе? Нужно в целях обучения, так сказать - синтаксис базовый изучить
Ответ: ПростоФан, а почему нет? можно даже рядом с виндой поставить, на вмваре будет лагать
Вопрос: Как можно создать мобильное приложение без опыта?

Всем доброго вечера. Пришел к вам с вопросом, суть которого в следующем - Дали мне тут домашнее задание на работе, не знаю с какой стороны к нему подступиться, без советов не обойтись. Вообщем нужно сделать приложение под ios и андроид (загружающееся из их магазинов), где будет каталог товаров(их не много), инфа, фото и контакты (переодически это надо обновлять/дополнять), по дизайну- стильный минимализм.

С программированием я почти не пересекаюсь, поэтому java и остальное хоть сколь либо быстрыми темпами осилить врядли смогу. Понимаю, что при таком раскладе надо искать человека или контору, которые этим занимаются. Но по разным причинам этого не хочется, и дело не в том, что денег жалко. Как еще можно подойти к решению вопроса? Может есть какие-нибудь бесплатные или платные шаблоны/программы, которые можно самому использовать, типа как сайт джумлы(битрикса) на хостинге развернуть? Извиняюсь за довольно сумбурный вопрос, заранее благодарен всем ответившим.

Ответ:
cheholchenko, закажите у фрилансера
Вопрос: Учить ли Objective-C новичку или сразу Swift?

Хочу начать изучать программирование под iOS есть ли смысл учить старый Objective-C или можно сразу браться за Swift? И долго ли еще будет жив Objective-C?
Ответ: думаю, можно сразу и свифт учить, но выгода знания обж-с в том, что большинство документации по различным сдк все еще описаны в обж-с, куча примеров и официальных туториалов так же

потому для полноценного программирования на иОС, знания обж-с, хотя бы маломальские, нужны

а долго ли он будет жив нигде не говорится, известно только, что пока что будет
Вопрос: Начало пути iOS разработчика

Все привет. Есть macbook и огромное желание научится программировать. На данный момент начал читать книгу по СИ от Ритчи и Кернигана. Это моя первая книга в программировании и до этого у меня не было опыта программирования. Насколько тяжело будет после прочтения этой книги начать осваивать objective-c? Надо ли учить objective-c если есть swift? Насколько высокий порог вхождения в iOS разработку? За какое время я смогу перейти в стадию junior?

Всем заранее спасибо.
Ответ: ответ: как только, так сразу
все зависит, от вашего упорства, желания разобраться, небоязни ошибок и тд и тп
все ошибаются, все сидят по пару дней над задачей, особенно вначале, никто не умел сортировать массивы и проектировать архитектуры приложений, потому не стоит разочаровываться в первых неудачах
не нужно обманывать себя, если что-то не понимаете, сразу же лезте за ответом, а то будете как в дремучем лесу
окружите себя соответствующим информационным пространством, и стремитесь сделать лучше, вот и все
думаю за год точно что-то, да получится
насчет obj-c и swift тут уже есть темы и можно их почитать, я же думаю, что стоит иметь хоть некоторые азы в obj-c чтобы понимать как все устроено, но если начать со свифта и в это время поглядывать в obj-c то все тоже получится

P.S и черпайте знания из первоисточников, Apple документации в оригинале, WWDC презентации, блоги крутых ребят и тд
не ленитесь на английском это читать и слушать, все отечественные аналоги либо супер устаревшие либо просто ужасно мутные и пересказанные по десятому кругу от бабы Гали тëтке Вере
Вопрос: Рекомендуемые тех. характеристики mac mini для программирования на iOS

Добрый день. Я хочу заняться разработкой на iOS. Как я слышал, один из наиболее правильных и легких путей - это приобретение мака. Я остановился на наиболее бюджетном варианте - mac mini.
По техническим характеристикам я присмотрел себе такое устройство:

Двухъядерный процессор Intel Core i5 с тактовой частотой 1,4 ГГц
4 ГБ памяти
Жёсткий диск объёмом 500 ГБ
Графический процессор Intel HD Graphics 5000
OS X El Capitan

Будет ли этого достаточно для комфортной (без тормозов) разработки под iOS простых приложений? А тяжеловесных приложений и игр (2d и 3d)?
Хотелось бы так же услышать пару советов о желаемой конфигурации устройства.



Скажите пожалуйста, кто на каком устройстве программирует? Достаточно быстро работает?
Так же меня интересует:
  1. Как работает xCode? Не тормозит? Компилируется быстро? Как дела обстоят с эмуляторами?
  2. Вашего устройства хватает для разработки и отладки 2d и 3d игр?
  3. Так же интересно узнать, насколько хорошо на ней работает Android Studio, а так же эмуляторы Androida.
Ответ:
Сообщение от Норанд
Поищу конфигурацию с 8ГБ)
возможно можно доставить еще 4 гига - зависит от модели.
Вопрос: In-door приложения

Доброго времени суток,

Возник вопрос как разрабатывать in-door приложения для заказчика. Читал про Enterprise лицензию. Подскажите правильно ли я понял и может что-то упустил. Разрабатывать приложение можно под обычной dev лицензией и тестировать на своем устройстве с помощью билда ad hoc, после чего нужно взять enterprise лицензию заказчика и подписать приложение ею перед билдом как in-door приложение. Но теперь возникает вопрос как установить данное приложение на устройства заказчика, есть ли какой-то список устройств на которые можно добавить или как это вобще происходит? Спасибо заранее!
Ответ: да, Enterprise лицензия, все верно, стоит она $300 в год.
при этом приложения можно ставить на неограниченное кол-во девайсов.

есть много способов установки аппа, об этом всем детальней можно почитать на официальных ресурсах Apple.

так же существуют сервисы, которые помогают распространять приложения вне аппстор, например или даже через уже можно, вобщем они есть и многие - за очень символичную цену
Вопрос: Правильная обработка нажатя кнопки в TableView

Здравствуйте. Пишу на Mono. Заполнил таблицу кастомными ячейками, состоящими из кнопки и лейбла и огбычными. При нажатии на кнопку в ячейке соответствующая ячейка должна удалиться. Вот код:
Кликните здесь для просмотра всего текста

Код C#
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
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
        {
            _tableView = tableView;
 
            var cur_lang =  _User_Data.cur_lang;
 
            if (TextLabelList.Count > 0)
                TextLabelList.RemoveRange (0, TextLabelList.Count);
 
            TextLabelList.Add (cur_lang._add_str);
            TextLabelList.Add (cur_lang._del_all);
 
            foreach (string str in _User_Data.name_mash_picker_list)
                TextLabelList.Add (str);
 
 
            //первые две и после основного списка ячейки идут с кнопкой
            if ((indexPath.Row < 2) || (indexPath.Row >= _User_Data.name_mash_picker_list_start_Count+2)) 
            {
                //"CellID_But"
                var cell = tableView.DequeueReusableCell ("CellID_But") as customViewCell_with_Button;
 
                if (cell == null)
                    cell = new customViewCell_with_Button ();
                    
 
                if (cell.cell_button.Tag == 0) {
                    cell.cell_button.Tag = indexPath.Row;
                    cell.cell_button.TouchUpInside += Touch_Delbtn_on_cell;
                }
                            
                cell.cell_Label.Text = TextLabelList [indexPath.Row];
 
                return cell;
            } 
            else
            {
                //далее обычные ячейки
                UITableViewCell cell = tableView.DequeueReusableCell ("cellIdentifier");
                // if there are no cells to reuse, create a new one
                if (cell == null)
                    cell = new UITableViewCell (UITableViewCellStyle.Default, "cellIdentifier");
                cell.TextLabel.Text = TextLabelList [indexPath.Row];;
                return cell;
            }
 
 
        }
 
 
               void Touch_Delbtn_on_cell(object sender, EventArgs e) //обработчик нажатия кнопки удалить
        {
            var but = (UIButton)sender;
            _User_Data.name_mash_picker_list.RemoveAt (but.Tag-2); //удалить элемент соответствующий кнопке
 
            _tableView.ReloadData ();
            System.IO.File.Delete (dbPath); //удалить файл
            BinaryWriter bw = new BinaryWriter(new FileStream(dbPath, FileMode.OpenOrCreate));
            for(int i=_User_Data.name_mash_picker_list_start_Count; i<_User_Data.name_mash_picker_list.Count; i++)  //переписать текущий список в файл
                bw.Write(Convert.ToDouble(_User_Data.name_mash_picker_list[i]));
            bw.Close(); 
 
        }

Но так как GetCell вызывается каждый раз при появлении ячейки на экране (например вышла из поля невидимости при скролле), то и обработчик события нажатия добавляется несколько раз и соответственно вызывается потом при нажатии тоже несколько раз. Что приводит к удалению не только своей но и соседних ячеек, так как те уже успели поменять свой индекс в списке. Никакой проверки на то, был ли уже добавлен объекту обработчик событий или нет, я не знаю.. Подскажите как быть в такой ситуации? Подобный вопрос я нашел на ксамариновском форуме, но решения я там что то не увидел: https://forums.xamarin.com/discussio...itableviewcell У меня есть конечно одна идея на этот счёт, но я ещё не проверял, насколько она рабочая. В общем кнопку на ячейке сделать объектом дочернего класса, наследованного от UIButton в котором лишь добавить свойство String_Tag, в которое при добавлении ячейки писалось бы то же самое что и на лейбле. А в обработчике нажатия искать элемент в списке с таким текстом и удалять. Таким образом заходить в обработчик может сколько угодно раз, но удалять только один, в остальных случаях он просто не найдет этот элемент в списке. Но это - костыль, а как правильно? Подскажите.
Ответ:
Метод dequeueReusableCell (начиная с какого-то обновления iOS) сам создает ячейку при необходимости (хотя кажется это работает только если табличка в сториборде, для нибов все по старому).
Я как раз со сторибордом и работаю.
Можно удалить все предыдущие обработчики перед добавлением нового.
Можно, но не известно сколько их было добавлено до этого, чтобы знать сколько удалять.
Можно передавать в кастомную ячейку блок, который будет вызываться при нажатии кнопки (или что там в C# вместо блоков? Лямбды?).
Не до конца понял что вы имеете в виду.
В общем сегодня сделал так, как задумывал на выходные. И все заработало. Переопределил класс кнопки кастомной ячейки дочерним классом от UIButton, добавив в него строковое свойство Tag_String.
И в GetCell написал такой вот код:
Код C#
1
2
3
4
5
6
cell.cell_button.Tag = indexPath.Row;
if(cell.cell_button.Tag_String==null)
        cell.cell_button.TouchUpInside += Touch_Delbtn_on_cell;
cell.cell_button.Tag_String=TextLabelList[indexPath.Row];
cell.cell_button.SetBackgroundImage(image, UIControlState.Normal);
cell.cell_Label.Text = TextLabelList [indexPath.Row];
А в обработчике нажатия вот такой:
Кликните здесь для просмотра всего текста

Код C#
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
    void Touch_Delbtn_on_cell(object sender, EventArgs e)
        {
            var button = (UIMyButton_on_cell)sender;
 
            if (button.Tag == 0) {
                Add_new_element (_tableView);
                return;
            }
            if (button.Tag == 1) {
                Del_all_element (_tableView);
                return;
            }
 
            var findindex = _User_Data.name_mash_picker_list.FindIndex(x => x.Equals(button.Tag_String)); //найти элемент в списке с такой строкой.
            
        
            if(findindex>1)
                _User_Data.name_mash_picker_list.RemoveAt (findindex);//удалить этот элемент
                
            _tableView.ReloadData ();
            System.IO.File.Delete (dbPath); //удалить  файл-список
            BinaryWriter bw = new BinaryWriter(new FileStream(dbPath, FileMode.OpenOrCreate));
            for(int i=_User_Data.name_mash_picker_list_start_Count; i<_User_Data.name_mash_picker_list.Count; i++)  //переписать текущий список в файл
                bw.Write(Convert.ToDouble(_User_Data.name_mash_picker_list[i]));
            bw.Close(); 
 
        }

Теперь в обработчик заходит только один раз и делает все что мне надо. Всем спасибо!
Вопрос: Удаление настроек и контента телефона приложения iOS

Можно ли инициировать очистку устройства (удаление настроек и контента телефона) с помощью кнопки в приложении, платформа IOS. Понятно что в ios это сложно осуществимо, но как же тогда устройство очищается при подключение active sync Exchange или при использовании MDM управления ?

Как можно осуществить это в приложении?
Приложение не для масс, а для определенного круга людей
Ответ: В документации к MDM-софту есть пошаговые инструкции, как у̶п̶р̶а̶в̶л̶я̶т̶ь̶ ̶В̶с̶е̶л̶е̶н̶н̶о̶й̶ ̶ управлять контентом и правами доступа к iOS-девайсам. С видиками и объяснялками.
Обычное приложение с функционалом "удалить всё на девайсе" просто не пройдет проверку в аппсторе.
Думаю, только через корпоративный акк.