Your money — контроль расходов


#1

С горем пополам опубликовал свое первое приложение)
Спасибо пользователям SwiftBook.ru за помощь в создании.
Особая благодарность Ивану за потрясающие курсы, haymob и InstaRobot за огромную помощь!)


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

Например: укажите что на развлечения вы планируете тратить только 15% от общей суммы денег, на необходимое 50%, на вклад 20%, на собственные покупки 15%. Исходя из указанных процентов Your Moneys будет контролировать ваши расходы.

Достоинства приложения:

  • Контроль расходов для каждой категории.
  • Статистика расходов и доходов за день,месяц,год.
  • История операций.
  • Добавление заметок.



Долго искал в AppStore такое приложение. Не смог придумать ничего лучше чем написать свое)
Может быть пригодится кому нибудь кроме меня)

Ссылка на скачивание:
https://itunes.apple.com/us/app/your-moneys/id1135309401?l=ru&ls=1&mt=8

буду очень благодарен, если оставите отзыв о приложении)


#2

Поздравляю. По вашей просьбе отписался в личку. Отзыв бы я оставил, но у меня iOS 10, с беток нельзя отзывы писать! Желаю успехов!


#3

Выглядит здорово! Единственное я бы местами поменял + и - (слева - справа +)


#4

Спасибо!)
Если кнопки вместе сделать, то будет большая вероятность мимо нажать)


#5

просто местами поменять ) привычнее плюсовать справа)


#6

Я подумаю на счёт смены кнопок местами самим польщователем, в настройках)


#7

а так оч круто все) с программированием давно знакомы?сколько потратили время на разработку?


#8

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


#9

Поздравляю) Большой молодец. Можно круговые диаграммы сделать толще, а то цифры не оч красиво ложатся


#10

а до этого владели языками? что именно помогло в освоении?


#11

Молодец :slight_smile:
Отлично выглядит!
Соглашусь, что толщину диаграммы увеличить бы и + и - поменять местами )


#12

Работа с диаграммами была одной из самых неприятных…
Хочу сделать как в приложении теле2)
Кнопки поменяю.


#13

TonyToy, начинал практически с самого нуля.

Был небольшой опыт в c++ и Delphi.
Потом начал учить php с JavaScript(сделал подобное на сайте).
Под конец нашёл на этот сайт, с переводом мануала по языку и чудесными курсами). Понял что пора покупать Мак и пробовать Свифт)

Программу писал довольно долго… Начал в марте, закончил в конце августа. (Силел по ночам, пока жена спит)


#14

Поздравляю!
Подскажи, пожалуйста, как ты делал такие скриншоты - чтобы на них был iPhone, как будто приложение на iPhone и его фотографируют?


#15

Спасибо!
На счет скриншотов:
Подошел к решению проблемы,на мой взгляд, не совсем правильно…

  1. создал в фотошопе изображения с нужными разрешениями (формата PNG).
  2. Есть отличный ресурс для генерации скриншотов https://launchkit.io/screenshots/onboard/
    но на нем закрыта регистрации, однако конструктор работает.
  3. в этом конструкторе я создавал нужные изображения. Затем созданные изображения растягивал в созданные файлы из пункта 1.

способ варварский, но всё решил остановиться на нем.


#16

Недавно делал аналогичные диаграммы. Если интересно вот код:

override func drawRect(rect: CGRect) {
        guard self.itemsAngle.count > 0 else {
            return
        }
        let bounds = self.bounds
        
        var startAngle:CGFloat = 0.0
        
        self.x = (bounds.width)/2
        self.y = (bounds.height)/2
        let width = [self.x, self.y].minElement()!
        self.radius = width/1.7

        self.lineWidth = (width-self.radius)
        for itemAngle in itemsAngle {
            let color = self.UIColors[itemAngle.0]
            let endAngle = itemAngle.1
            let percent = round(((Double(endAngle) - Double(startAngle)) * 100.0) / (2.0 * M_PI))
            
            let bezierPath = UIBezierPath(arcCenter: CGPoint(x: x, y: y),
                                          radius: radius,
                                          startAngle: startAngle,
                                          endAngle: endAngle,
                                          clockwise: true)
            CGContextSetShadow(UIGraphicsGetCurrentContext(), CGSizeZero, 0.5)
            if animation == true {
                let pie = CAShapeLayer()
                pie.path = bezierPath.CGPath
                pie.strokeColor = color!.CGColor
                pie.fillColor = UIColor.clearColor().CGColor
                pie.lineWidth = lineWidth
                self.layer.addSublayer(pie)
                
                let drawAnimation = CABasicAnimation(keyPath: "strokeEnd")
                drawAnimation.repeatCount = 1.0
                
                let fractionOfCircle = 1.0
                drawAnimation.fromValue = NSNumber(float: 0.0)
                drawAnimation.toValue = NSNumber(double: fractionOfCircle)
                
                drawAnimation.duration = 0.5
                
                drawAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
                
                pie.addAnimation(drawAnimation, forKey: "drawCircleAnimation")
            }
            else {
                bezierPath.lineWidth = lineWidth
                color!.setStroke()
                bezierPath.stroke()

            }

            let labelAngle = startAngle + (endAngle - startAngle) / 2
            let labelX = x + radius * cos(labelAngle)
            let labelY = y + radius * sin(labelAngle)
            
            let fieldFont = UIFont(name: "BlissPro", size: 19)
             
            let fontHeight : CGFloat = (fieldFont?.pointSize)!
             
            let percentLabel = UILabel(frame : CGRectMake(labelX, labelY, 200.0, fontHeight))
            percentLabel.textAlignment = .Center
            percentLabel.font = fieldFont
            percentLabel.textColor = UIColor(red: 35.0/255.0, green: 113.0/255.0, blue: 168.0/255.0, alpha: 1.0)
            percentLabel.text = String(format: "%.0f", percent) + "%"
            percentLabel.sizeToFit()
            percentLabel.frame.origin.x -= percentLabel.frame.width / 2
            percentLabel.frame.origin.y -= percentLabel.frame.height / 2
            self.addSubview(percentLabel)
            startAngle = endAngle
        }
    }

#17

Спасибо, как обязательно протестирую, как появится время)


#18

Закончили в конце июля?


#19

Точно, ошибся чуть.
Спасибо)