пятница, 21 ноября 2014 г.

Твой Бизнес Кейс

Совсем недавно в App Store появилась моя новая программа - YrBusinessCase.
Это удобный инвестиционный калькулятор со следующими возможностями:
1. Создание неограниченного количества различных инвестиционных проектов
2. В каждом кейсе можно сформировать любое количество статей доходов и затрат
3. Имеется возможность расчета кейса при использовании заемного капитала.
4. Наглядный расчет ключевых показателей эффективности проекта
5. Отдельные детализации и графики для оценочной стоимости и финансовых результатов
6. Удобная навигация между всеми элементами проекта
7. Сравнение нескольких проектов по различным показателям на графике
8. Поддержка iCloud с возможностью синхронизации на iPhone и iPad
9. Поддержка печати отчетов и отправки на почту в формате pdf

В этой статье я расскажу про основные аспекты работы с программой.
При запуске отобразиться главное окно:

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

Перейдем к созданию нового проекта. При нажатии на кнопку создания нового кейса откроется окно:

Кнопка с крестиком отменяет создание кейса, а также отменяет все изменения, если вы решили отредактировать существующий проект.
Кнопка с галочкой применяет все изменения и сохраняет проект. На этом этапе также происходит сохранение проекта в iCloud.
Кнопка в нижней панели позволит Вам отправить указанные проект в формате pdf на почту, или на принтер AirPrint.

В окне ячеек представлены следующие элементы проекта:
1. Общая информация. Здесь вы сможете внести необходимую базовую информацию по проекту.

2. Капитальные затраты. В капитальных затратах Вы можете указать неограниченное количество статей капитальных затрат. Для добавления новой статьи нажмите на ячейку "Добавить статью затрат". Отобразиться окно для ввода данных по статье

Тип затрат можно выбрать с помощью пикера, который появляется при нажатии на поле выбора.
При работе с окном для ввода суммы Вы можете воспользоваться удобным встроенным калькулятором, который появляется автоматически при нажатии на поле ввода цены. 
Поле суммы автоматически посчитает полную сумму по статье.
Дата также задается пикером, который имеет ограничения по срокам, введенным ранее в окне общей информации.


 Как и раньше, можно отменить все изменения нажав на "Х" и сохранить нажав на галочку. При сохранении данных новая статья отобразиться в окне капитальных затрат: 


Аналогичным способом заполняются данные по операционным затратам, данные по экономии операционных затрат, а также данные по доходам. 
Обратите внимание, что, в отличие от статей капитальных затрат, в указанных статьях необходимо заполнить поле периодичности платежей, оно заполняется удобным пикером. 
Суммы по статьям будут в дальнейшем отображаться в главном окне проекта. Я добавил одну статью операционных затрат и одну статью доходов, результаты выглядят следующим образом:


 Как Вы могли заметить, программа автоматически посчитала финансовый результат этого проекта и его оценочную стоимость. Главные результаты отображены в соответствующих ячейках.
Теперь Вы можете ознакомиться с результатами более детально нажав на ячейки "Итоговые показатели" или "Оценочная стоимость"








Повернув экран в альбомный режим или нажав на кнопку графика, Вам отобразиться окно графиков:


После сохранения проекта, он отобразиться в главном окне:

Нажав на кнопку "Выбрать" Вы сможете удалить выбранные проекты, либо осуществить сравнение по необходимому показателю:


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

Теперь мы сможем сравнить два наших проекта по разным показателям:

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

Программа на текущий момент поддерживает все iPhone и iPad, между которыми будет происходить синхронизация. Так вы можете по пути быстро внести на телефоне какую-нибудь идею по проекту. После чего спокойно поработать с ним на планшете.

Программа доступна в AppStore по цене $4,99 или 169 руб.
Ссылка

Поддерживаются русский и английский языки

Как и раньше, разработчики, кому интересны элементы работы программы, могут задавать вопросы, на которые я отвечу в сообщении, либо напишу урок.

Пользователи программы могут обращаться с любыми вопросами через блок обратной связи.

Уверен, что программа обязательно пригодиться тем, кто хочет легко и быстро произвести предварительную оценку использования своих инвестиций.

вторник, 12 августа 2014 г.

Решение задач в XCode. Задача 2. Прозрачный NavigationBar

Вопрос прозрачности панели навигации возникает довольно редко, однако такая панель, по моему скромному мнению, выглядит вполне достойно, да и сделать ее довольно просто.

Итак, нам понадобится картинка или фон размером 320х64 в формате .PNG (для разных устройств высота панели навигации отличается, для правильного подбора размеров элементов воспользуйтесь ссылкой.

Добавляем картинку в наш проект в XCode. Далее необходимо задать прозрачность для панели и назначить нашу картинку для навигации в качестве backgroundImage.

В списке элементов Interface Builder выберите контроллер навигации, в нем найдите Navigation Bar. В инспекторе атрибутов этой панели навигации задайте стиль:



Вы можете отметить галочкой свойство Translucent, либо задать прозрачность в коде файла реализации как приведено ниже.

В файле реализации .m Вашего главного ViewController (при добавлении контроллера навигации из библиотеки он по умолчанию называется RootViewController) добавьте следующий код в метод ViewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_grd_2_@2X.png"]forBarMetrics:UIBarMetricsDefault];
    

    self.navigationController.navigationBar.translucent = YES;
}

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



Спасибо за внимание!

суббота, 9 августа 2014 г.

Решение задач в XCode. Задача 1. Спрятать клавиатуру.

И снова здравствуйте!

Начинаем решать наиболее часто возникаемую задачу - как убрать клавиатуру после завершения ввода?

Решений данной задачи существует довольно много, и их легко найти. Я же опишу именно те, которые показались мне наиболее простыми и удобными.

Способ первый. Использовать имеющуюся на клавиатуре кнопку Done (она же Return Key в Инспекторе Атрибутов текстового поля).



1. Добавление кода в файл заголовка .h

Создайте Outlet соединение нужного текстового поля:

#import <UIKit/UIKit.h>


@interface YCCCarLoanTableViewController : UITableViewController

@property (strong, nonatomic) IBOutlet UITextField *carWorthTextField;


Создайте Action соединение данного текстового поля и выберите тип  события "Did End On Exit"

- (IBAction)carWorthTextEndEditing:(UITextField *)sender;


2. Добавление кода в файл реализации .m

После создания соединения Action в файле реализации автоматически будет добавлен метод

- (IBAction)carWorthTextBeginEditing:(UITextField *)sender{
}

Добавьте в реализацию этого метода следующий код:

- (IBAction)carWorthTextBeginEditing:(UITextField *)sender{

    [sender resignFirstResponder];
}
После запуска программы можете проверить, что клавиатура уходит при нажатии на кнопку возврата.

Способ второй. Настройка прикосновения к фону. Этот способ может пригодиться тем, кто использует клавиатуры без кнопки возврата (например, Decimal Pad). Не работает с UITableView.

1. Работа в Interface Builder

Используя Identity Inspector измените класс своего UIView на UIControl
Это позволит вам создать соединение Action для Вашего View.

2. Добавление кода в файл заголовка .h

Создайте Action соединение для View (как и обычно зажимаете клавишу ctrl и клавишу мыши или тач-панели и ведете соединительную линию к файлу заголовка), выберите тип  события "Touch Up Inside"

- (IBAction)backgroundTap:(UIControl *)sender;

Как и в первом примере, программа сама добавит в файл .m реализацию данного метода

3. Добавление кода в файл реализации .m

Добавьте следующую строку в реализацию данного метода:

- (IBAction)backgroundTap:(UIControl *)sender
{
    [self.carWorthTextField resignFirstResponder];

}

Теперь, после нажатия на пустое место View, клавиатура будет убираться. Если у Вас несколько текстовых полей, то в реализацию этого метода добавьте остальные текстовые поля.

Способ третий. Использование InputAccessoryView у текстового поля


Именно этот способ использовался мной при написании кредитного калькулятора. Причиной тому послужила необходимость добавления нескольких кнопок (очистка текстового поля и завершение ввода). В этом методе Вы создаете дополнительный Toolbar с несколькими кнопками над клавиатурой

1. Добавление кода в файл реализации .m

В любом подходящем месте вашего кода (будь-то метод ViewDidLoad или метод Action с типом "Editing Did Begin" у текстового поля) добавьте следующий код создания Toolbar:

UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent; //настройка стиля для панели
numberToolbar.tintColor = [UIColor whiteColor]; // настройка цвета кнопок

//создание массива кнопок
numberToolbar.items = [NSArray arrayWithObjects:[[UIBarButtonItem alloc]initWithTitle:@"Очистить" style:UIBarButtonItemStyleBordered target:self action:@selector(clearField)], // кнопка очистки поля
                           [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], // пустое место для заполнения пространства панели
                           [[UIBarButtonItem alloc]initWithTitle:@"Готово" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],nil];//кнопка завершения ввода

[numberToolbar sizeToFit]; //метод корректного масштабирования панели


self.carWorthTextField.inputAccessoryView = numberToolbar; // применение новой панели к нужному текстовому полю

В результате реализации этого кода, над клавиатурой появится наша панель с кнопками

Теперь необходимо создать методы для обработки селекторов кнопок новой панели

В файл реализации .m добавьте следующие методы:

// завершение ввода
- (void)doneWithNumberPad
{
    [self.carWorthTextField resignFirstResponder]; 

}


//очистка текстового поля
- (void)clearField
{
        self.carWorthTextField.text = @"";

}
Теперь, при нажатии кнопок на панели, будут происходить необходимые действия с текстовым полем

На этом все! Надеюсь, что этими способами помог Вам. 
Если есть вопросы, замечания или пожелания, пишите в комментариях. Пишите также что бы Вы хотели узнать из тех методов, что были мной использованы в кредитном калькуляторе (или других моих программах, когда они будут :-)).

Удачи!

Кредитный калькулятор iOS


Всем привет!

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

Итак, Вашему вниманию представлена моя первая программа - довольно простой кредитный калькулятор.





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

Зачастую пользуюсь калькулятором сам для быстрого подсчета примерной суммы.
За счет слайдеров Вы можете довольно быстро посмотреть разницу в результатах расчета не пользуясь вводом с клавиатуры.

Программа распространяется бесплатно, нет никакой рекламы, пользуйтесь наздоровье.

С уважением, Павел.

Ссылка на Калькулятор в App Store