Тёмный

Build an Expense Tracker App in SwiftUI - full course 

DesignCode
Подписаться 305 тыс.
Просмотров 106 тыс.
50% 1

Опубликовано:

 

18 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 110   
@michamichalik9719
@michamichalik9719 2 года назад
This is one of the best SwiftUI contents I've seen on youtube. Thank you!!
@josileudorodrigues7818
@josileudorodrigues7818 2 года назад
Hi @Michal Michalik, can you share with me your repository with this code?
@koberubirosa3531
@koberubirosa3531 2 года назад
1:20:07 To turn off the shadow add "showShadow: false" in the CardView...For example -> CardView(showShadow: false)
@ayhanselek
@ayhanselek Месяц назад
It worked. Afterwards, when I applied the shadow and clipShape from the transaction list to the CardView, I got the same look.
@vladcom95
@vladcom95 2 года назад
this video is underrated
@DesignCodeTeam
@DesignCodeTeam 2 года назад
Thanks! That means a lot to me! 😃
@mahmoudzinji5672
@mahmoudzinji5672 2 года назад
Where is the code for Category Extenion at min 52:11 ???
@Ali-np6nn
@Ali-np6nn 2 года назад
How can I copy some ready codes like at 52.12? Source file link asks for money and I can't find github source anywhere.
@ntissa
@ntissa Год назад
Thanks for the example it was very instructive.
@joshuabseitz
@joshuabseitz 2 года назад
Exceptional tutorial - thanks!
@DesignCodeTeam
@DesignCodeTeam 2 года назад
You're very welcome!
@josileudorodrigues7818
@josileudorodrigues7818 2 года назад
Hi, can you share with me your repository with this code?
@AkashPatel-lo7vg
@AkashPatel-lo7vg Год назад
35:54 in Sink section, in finish case return is required otherwise its giving error instead proper response
@rowanerasmus2169
@rowanerasmus2169 Год назад
return what exactly?
@nicholesguillory6023
@nicholesguillory6023 10 месяцев назад
URLSession.shared.dataTaskPublisher(for: url) .tryMap { (data, response) -> Data in guard let httpReponse = response as? HTTPURLResponse, httpReponse.statusCode == 200 else { dump(response) throw URLError(.badServerResponse) } return data } .decode(type: [Transaction].self, decoder: JSONDecoder()) .receive(on: DispatchQueue.main) .sink( receiveCompletion: { completion in switch completion { case .failure(let error): print("Error fetching transactions:", error.localizedDescription) case .finished: print("Finished fetching trnasactions") } }, receiveValue: { [weak self] result in self?.transactions = result // dump(self?.transactions) } ) .store(in: &cancellables) } }
@Macallock
@Macallock 2 года назад
Very interesting video! Can you explain how to create a page to input data for this app?
@KBreezyENT
@KBreezyENT 2 года назад
Also interested in this!
@mattbrodeur5695
@mattbrodeur5695 Год назад
WIth chase you can export it as an Excell. had set up a function in py to import all of the data from my bank and into my budget excell file. imported 3 years of expenses.
@tomasvivas8879
@tomasvivas8879 Год назад
Could you do the tutorial on how to add it directly from the app?
@dosomethingintrersting3697
@dosomethingintrersting3697 2 года назад
I'm writing it myselft....Really great tutorial..😃
@DesignCodeTeam
@DesignCodeTeam 2 года назад
Thank you so much 😀
@dotnetdevni
@dotnetdevni 2 года назад
Your videos are great quality I have seen many tutors and code videos over 20 years and your stuff is very clear the only thing I would ask is if could talk a bit slower the commentary is very fast at times.
@trishoolpanigautam8085
@trishoolpanigautam8085 2 года назад
Thank you SO much for this video :) it really helped me out!
@TuningAnApple
@TuningAnApple Год назад
Where in this video does she talk about the API she uses to add transactions automatically? I cant find it in chapter list.
@hn29723
@hn29723 2 года назад
Great video … thanks for recording and also for sharing ;-)
@josuetoral4747
@josuetoral4747 2 года назад
Cool! You're the best guys!
@michaelfu8841
@michaelfu8841 5 месяцев назад
46:24, why do you need to push the previewdata to transactionListVM, it is a different set of data stored in a local file.
@nils42069
@nils42069 7 месяцев назад
I was able to remove the shadow around the CardView at the chart by passing showShadow: false into the constructor of the ChartView
@AkashPatel-lo7vg
@AkashPatel-lo7vg Год назад
[00:55:57] Recent Transaction List Display, form here ui is not rendering properly.
@xiaoyuanlv3928
@xiaoyuanlv3928 2 года назад
Thanks. Really amazing 🌟
@serdaronurkaradag7666
@serdaronurkaradag7666 Год назад
Great video well done !
@serdaronurkaradag7666
@serdaronurkaradag7666 Год назад
i Finished all video and made everything same with you. All is work fine!
@KEVINKIM2586
@KEVINKIM2586 2 года назад
Amazing! Thanks!
@DesignCodeTeam
@DesignCodeTeam 2 года назад
Thank you!
@Pogodindenis
@Pogodindenis Год назад
I have an error "Type of expression is ambiguous without more context. Did have the same problem?
@joakimalpsten6325
@joakimalpsten6325 Год назад
fantastic! appreciated it a lot.
@hunter91177
@hunter91177 11 месяцев назад
[00:00:00] How to resolve "Error fetching transactions: The operation couldn’t be completed. (NSURLErrorDomain error -1011.)"
@simsolam
@simsolam Год назад
Thank you so much 😇🙏🏼
@corneliusisaac7839
@corneliusisaac7839 5 месяцев назад
Hi Dara, amazing instructions so far. However, I could not load the JSON file in the transaction list model. Please how can I fix it? Thanks so much in advance
@maratudorache8633
@maratudorache8633 Месяц назад
how do you switch from dark to light mode and vice versa at the very end when you preview the app?
@AdhikariiM
@AdhikariiM 29 дней назад
Command shift A
@texasrobotaxi2727
@texasrobotaxi2727 2 года назад
Another one! 😎
@KBreezyENT
@KBreezyENT 2 года назад
How can we use this as an actual app on our phones? I've completed the full video course and everything works well in development, but how can I/family members use this on their actual devices?
@stephansupload9029
@stephansupload9029 2 года назад
There is 2 ways: First, publish it to the App Store and let people download it. Secondly, attach each iPhone to the computer that you develop on. Once connected you will be prompted on your phone to trust the attached computer. When you click yes, the iPhone will appear as a runtime environment in Xcode. Instead of the iPhone 13 Simulator as the runtime Environment, select your phone and press the run button. It will need a minute but the app will then be installed on your phone and you can use it. Bear in mind, that unless you created backend functionalities to connect to your bank Account , the app will just be a nice looking App on your phone.
@KBreezyENT
@KBreezyENT 2 года назад
@@stephansupload9029 yeah, creating that backend to the bank account is useful, if I can figure out a way to do it.
@SankarS02
@SankarS02 Год назад
@@stephansupload9029 Do you have any idea of how to add transaction manually by the user👀
@metinsaglam5027
@metinsaglam5027 Год назад
I received "Error fetching transactions: The data couldn’t be read because it is missing." error.. Any idea?
@giorgimeqvabishvili8210
@giorgimeqvabishvili8210 Год назад
Make sure that Transaction struct and JSon file have matching names for id, date etc.
@AkashPatel-lo7vg
@AkashPatel-lo7vg Год назад
add return inside Sink block case finish
@PavelSamoylenko
@PavelSamoylenko 28 дней назад
Double check that Transaction struct definition is the same and doesn't have any typo in variable names: struct Transaction : Identifiable, Decodable { let id: Int let date: String let institution: String let account: String var merchant: String let amount: Double let type: TransactionType.RawValue var categoryId: Int var category: String let isPending: Bool var isTransfer: Bool var isExpense: Bool var isEdited: Bool var dateParsed: Date{ date.dateParsed() } var signedAmount: Double { return type == TransactionType.credit.rawValue ? amount : -amount } }
@Faiiivourful
@Faiiivourful 2 года назад
Hi DesignCode, is there any courses about buliding a booking app, like making reservations for classes? Thank you !!
@DJSebas213
@DJSebas213 2 года назад
AMAZING !
@DesignCodeTeam
@DesignCodeTeam 2 года назад
Thanks!!!
@tarunreddy3599
@tarunreddy3599 2 года назад
can you please make a video demonstrating a friend request system with firebase! Love this channel
@DesignCodeTeam
@DesignCodeTeam 2 года назад
That's a cool idea. Thanks
@방씰룩쌜룩
@방씰룩쌜룩 3 месяца назад
There's a error in 38:14 Is there anyone who knows how to solve it?
@dotnetdevni
@dotnetdevni 2 года назад
Query is it better to use arrays all the time when it comes to swift ui I am coming form a c# background.
@yavuzselimguner2776
@yavuzselimguner2776 Год назад
min 56 When the write the code ContentView page in RecentTransactionList(). The app will be crush. Can you help me?
@10pc
@10pc 2 года назад
Hi Dara Thank you for the video. It is an awesome vide for learning. While practicing, I received an error at 40 min while building the code. Error: Error fetching transactions: The data couldn’t be read because it is missing. I am using the same URL and it is working when opened in browser but Swift is unable to read the contents. What am I missing here?
@serdaronurkaradag7666
@serdaronurkaradag7666 Год назад
Check your Struct var. They must be same with API
@giorgimeqvabishvili8210
@giorgimeqvabishvili8210 Год назад
@@serdaronurkaradag7666 Hey,, can you explain what you mean by struct var? Thanks
@serdaronurkaradag7666
@serdaronurkaradag7666 Год назад
@@giorgimeqvabishvili8210 variables of struct. like struct Model {var name:String} this variable must be same with api
@PavelSamoylenko
@PavelSamoylenko 28 дней назад
Double check that Transaction struct definition is the same and doesn't have any typo in variable names: struct Transaction : Identifiable, Decodable { let id: Int let date: String let institution: String let account: String var merchant: String let amount: Double let type: TransactionType.RawValue var categoryId: Int var category: String let isPending: Bool var isTransfer: Bool var isExpense: Bool var isEdited: Bool var dateParsed: Date{ date.dateParsed() } var signedAmount: Double { return type == TransactionType.credit.rawValue ? amount : -amount } }
@jacobodi
@jacobodi 2 года назад
Can you buy the designs to create the apps? Greetings and thanks for the videos.
@timataimam9060
@timataimam9060 Год назад
I have a question. When you show the final version, how do you display the dark mode version?
@simsolam
@simsolam Год назад
CMD + Shift + A
@VasanthRamachandran
@VasanthRamachandran Год назад
Where is the screen to input data? Is it available in Full version?
@swarnimvarshneya6944
@swarnimvarshneya6944 Год назад
I can't get those URL transactions in preview. Can you help me please
@forgeforex619
@forgeforex619 11 месяцев назад
had u solved that ?
@mkhasson97
@mkhasson97 2 года назад
👏🏻👏🏻👏🏻
@kevinprandini
@kevinprandini 2 года назад
hello so after minute 22:08 where one adds "transation.dateparsed" in teh transactionRow it says that it cant find date in the scope in the TransactionModel? what can i do to fix this?
@dacoolkeed
@dacoolkeed 2 года назад
Be careful. It's dateParsed. You should also check on TransactionModel - line 25 dateParsed: Date {
@f00ghters
@f00ghters Год назад
how do you make it so you can hook up a credit card
@MurphyRandle
@MurphyRandle 2 года назад
Thanks!
@DesignCodeTeam
@DesignCodeTeam 2 года назад
Wow, that's our first Super thanks! Thank you!
@MurphyRandle
@MurphyRandle 2 года назад
@@DesignCodeTeam thank YOU for making good content! 🎉
@yavuzselimguner2776
@yavuzselimguner2776 Год назад
Hi Dara, I can't find data list and extension Category infos. Can you share with us please. Thank you
@AkashPatel-lo7vg
@AkashPatel-lo7vg Год назад
extension Category{ static let autoAndTransport = Category(id: 1, name:"Auto & Transport", icon: .car_alt) static let billsAndUtilities = Category(id: 2, name:"Bills & Utilities", icon:.file_invoice_dollar) static let entertainment = Category(id: 3, name:"Entertainment", icon:.film) static let feesAndCharges = Category(id: 4, name:"Fees & Charges", icon: .hand_holding_usd) static let foodAndDining = Category(id: 5, name: "Food & Dining", icon: .hamburger) static let home = Category(id: 6, name:"Home", icon:.home) static let income = Category(id: 7, name:"Income", icon:.dollar_sign) static let shopping = Category(id: 8, name:"Shopping", icon:.shopping_cart) static let transfer = Category(id: 9, name:"Transfer", icon:.exchange_alt) static let publicTransportation = Category(id: 101, name: "Public Transportation", icon: .bus, mainCategoryId: 1) static let taxi = Category(id: 102, name:"Taxi", icon: . taxi, mainCategoryId: 1) static let mobilePhone = Category(id: 201, name:"Mobile Phone", icon: .mobile_alt, mainCategoryId: 2) static let moviesAndDVDs = Category(id: 301, name:"Movies & DVDs", icon: .film, mainCategoryId: 3) static let bankFee = Category(id: 401, name: "Bank Fee", icon: .hand_holding_usd, mainCategoryId: 4) static let financeCharge = Category(id: 402, name: "Finance Charge", icon: .hand_holding_usd, mainCategoryId: 4) static let groceries = Category(id: 501, name: "Groceries", icon: .shopping_basket, mainCategoryId: 5) static let restaurants = Category(id: 502, name:"Restaurants", icon: .utensils, mainCategoryId: 5) static let rent = Category(id: 601, name:"Rent", icon: .house_user, mainCategoryId: 6) static let homeSupplies = Category(id: 602, name:"Home Supplies", icon: .lightbulb, mainCategoryId: 6) static let paycheque = Category(id: 701, name: "Paycheque", icon: .dollar_sign, mainCategoryId: 7) static let software = Category(id: 801, name:"Software", icon: .icons, mainCategoryId: 8) static let creditCardPavment = Category (id: 901, name:"Credit Card Pavment", icon:.exchange_alt, mainCategoryId: 9) }
@TechnoGrove
@TechnoGrove 2 года назад
Keeps saying “Failed to log metrics, Error fetching transactions the data couldn’t be read because it is missing “ 40:00
@joshburt35
@joshburt35 2 года назад
I had the same issue but went back and checked my model for any typos. found one and now it works.
@shivambalki
@shivambalki Год назад
same issue , any help??
@shivambalki
@shivambalki Год назад
got it my comparing fields with json
@walmzd
@walmzd Год назад
@@shivambalki in what way? I took a look at the transaction row field and it seems to match but i am still getting the error
@chongweising7920
@chongweising7920 2 года назад
Hi! Referring to 40:18 on Logged Data, I'm getting the following in my console: ExpenseTracker[26775:889565] [boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics Error fetching transactions: The data couldn’t be read because it is missing. But when I input the given url manually into the browser, I'm actually able to view the json. So why is Xcode unable to read the data? Anyone? Thanks in advance!
@mostafashaminyeasar8166
@mostafashaminyeasar8166 2 года назад
Check that the variables names like id, account of transactionModel are exactly same as json. id for id, if you use ID for id it will give error. So, "exactly" do that.
@TechnoGrove
@TechnoGrove 2 года назад
I’m getting a similar error and I checked my variable names under transactionModel
@metinsaglam5027
@metinsaglam5027 Год назад
any answer ? any solutions ?
@metinsaglam5027
@metinsaglam5027 Год назад
found it.. I wrote "expence" but it is "expense" now it is working..
@abokorbaxnaano3252
@abokorbaxnaano3252 2 года назад
Can I use another coding software to develop Like android studio I'm windows user
@MrSojek
@MrSojek 2 года назад
No, but you can install Hackintosh on your PC if you can't afford buying Apple products.
@mayankshandilya945
@mayankshandilya945 2 года назад
unfortunately, i don't know any widely known software on windows that support SWIFT
@gen81828
@gen81828 2 года назад
unfortunately, you need an Apple to code Apple apps
@humaidmustajab1745
@humaidmustajab1745 2 года назад
Where do I copy the text for 52:12?
@sylowguy634
@sylowguy634 2 года назад
extension Category { static let autoAndTransport = Category(id: 1, name:"Auto & Transport", icon: .car_alt) static let billsAndUtilities = Category(id: 2, name: "Bills & Utilities", icon: .file_invoice_dollar) static let entertainment = Category(id: 3, name:"Entertainment", icon:.film) static let feesAndCharges = Category(id: 4, name: "Fees & Charges", icon: .hand_holding_usd) static let foodAndDining = Category(id: 5, name:"Food & Dining", icon:.hamburger) static let home = Category(id: 6, name:"Home", icon:.home) static let income = Category(id:7,name: "Income", icon: .dollar_sign) static let shopping = Category(id: 8, name: "Shopping", icon: .shopping_cart) static let transfer = Category(id: 9, name: "Transfer", icon: .exchange_alt) static let publicTransportation = Category(id: 101, name: "Public Transportathin", icon: .bus,mainCategoryId: 1) static let taxi = Category(id: 102, name:"Taxi", icon: .taxi, mainCategoryId: 1) static let mobilePhone = Category(id: 201, name:"Mobile Phone", icon: .mobile_alt, mainCategoryId: 2) static let moviesAndDVDs = Category(id: 301, name:"Movies & DVDs", icon: .film, mainCategoryId: 3) static let bankFee = Category(id: 401, name:"Bank Fee", icon: .hand_holding_usd, mainCategoryId: 4) static let financeCharge = Category(id: 402, name:"Finance Charge", icon: .hand_holding_usd, mainCategoryId: 4) static let groceries = Category(id: 501, name: "Groceries", icon: .shopping_basket, mainCategoryId: 5) static let restaurants = Category(id: 502, name:"Restaurants", icon: .utensils, mainCategoryId: 5) static let rent = Category(id: 601, name: "Rent",icon: .house_user, mainCategoryId: 6) static let homeSupplies = Category(id: 602, name:"Home Supplies", icon:.lightbulb, mainCategoryId: 6) static let paycheque = Category(id: 701, name:"Paycheque", icon:.dollar_sign, mainCategoryId: 7) static let software = Category(id: 801, name:"Software", icon: .icons, mainCategoryId: 8) static let creditCardPayment = Category(id: 901, name: "Credit Card Payment", icon:.exchange_alt, mainCategoryId:9) }
@unyy01
@unyy01 2 года назад
@@sylowguy634 life saver!!! Thank you very much!
@sylowguy634
@sylowguy634 2 года назад
@@unyy01 ur welcome pal!
@Ali-np6nn
@Ali-np6nn 2 года назад
@@sylowguy634 Can u share it with me?
@sylowguy634
@sylowguy634 2 года назад
@@Ali-np6nn do you mean all the project , because o don’t have it anymore 😓 you can just copy and paste the comment ✨
@carmineloschiavo5864
@carmineloschiavo5864 2 года назад
Hi Dara- I enjoyed building the Expense Tracker App with you but I ran into a problem at the end. The build was successful but then I got and error in the simulator and no display on my phone . The error in the debug console is "[boringssl] boringssl_metrics_log_metric_block_invoke(153) Failed to log metrics.”
@stephansupload9029
@stephansupload9029 2 года назад
Check the naming of the variable in the Transaction struct vs. the variable naming from the json file. If the naming is not exactly as in the JSON Document, the JSONDecoder throws a cryptic message like the one you have. In Preview it works since you overwrite it with the previewData Asset transactionListPreviewData - This is only for preview though. Once you build, this asset vanishes and it loads the data through the URL Session as intended. This will crash the app as the TransactionListViewModel can not be loaded.
@carmineloschiavo5864
@carmineloschiavo5864 2 года назад
Thanks
Далее
Build and Animate a Smart Home Thermostat app in SwiftUI
1:16:37
Learn the Essentials of Swift in one hour
58:14
Просмотров 189 тыс.
SwiftUI Masterclass: Build To Do List App
2:42:49
Просмотров 125 тыс.
SwiftUI Basics Tutorial
1:19:31
Просмотров 398 тыс.
🔴 NEW SwiftUI Airbnb Clone | iOS 17 | Xcode 15
3:09:05
Brutally honest advice for new .NET Web Developers
7:19
1. SwiftData CRUD Operations
42:40
Просмотров 27 тыс.