Charge2Change is a SwiftUI-based project that aims to incentivize Electric Vehicle (EV) owners to participate in Vehicle-to-Grid (V2G) programs. Unlike most V2G start-ups and companies, Charge2Change focuses on addressing the crucial aspect of motivating EV owners to actively engage in V2G initiatives. 💡
The primary motivation behind Charge2Change is to explore innovative ways to encourage EV owners to embrace and participate in V2G programs. While the concept of V2G holds immense potential in terms of sustainable energy management, the lack of emphasis on incentivization has been a significant hurdle in its adoption. Charge2Change seeks to bridge this gap by introducing attractive incentives and rewards for EV owners, creating a win-win scenario for both the owners and the energy grid. 🔌💰
To run or build the Charge2Change project, you will need a Macbook with Xcode installed. If you don't have Xcode installed, you can download it from the Mac App Store for free.
Follow these steps:
- Clone the project repository to your local machine using the following command on your terminal:
git clone https://github.com/ahmetsenturk/Charge2Change.git
You can also simply go to the repository, click on the green Code button, and then select Download ZIP, this will automatically start the download. After unzipping the folder, you are good to go.
- Open the project in Xcode by double-clicking on the Charge2Change.xcodeproj file.
![Screenshot 2023-07-18 at 21 41 10](https://private-user-images.githubusercontent.com/35606355/254385122-e96084cd-a12b-40c8-80b4-bf9afdaa9ba7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NjA4MTMsIm5iZiI6MTczOTc2MDUxMywicGF0aCI6Ii8zNTYwNjM1NS8yNTQzODUxMjItZTk2MDg0Y2QtYTEyYi00MGM4LTgwYjQtYmY5YWZkYWE5YmE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDAyNDgzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzYmYyY2VjM2U0MWZjNDdiZTdlNDA5NjYzZDgyMjAxMGFlM2RhOWZjMGI1MjAwZDM2Mjk0NDZjZmZjZmEwZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xebOxL-tP4_P9n7P_6fZSyNuKSYCVNAWOhCIsZuxpn4)
-
Ensure that you have the minimum required iOS version (16.4) installed on your simulator or device.
-
Build and run the project on your preferred simulator or device by selecting the corresponding target and clicking the "Run" button in Xcode.
![Screenshot 2023-07-18 at 21 41 51](https://private-user-images.githubusercontent.com/35606355/254385161-ab354d76-64c7-479b-a791-850efc78fcbe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NjA4MTMsIm5iZiI6MTczOTc2MDUxMywicGF0aCI6Ii8zNTYwNjM1NS8yNTQzODUxNjEtYWIzNTRkNzYtNjRjNy00NzliLWE3OTEtODUwZWZjNzhmY2JlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDAyNDgzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcwZWQ4NzVjNjVlMTc5ODZkZGU2YjRlYmVjMTRiMTdmODU4N2JiMWZlODUyYjVkNTVjOWRmNDg4Mzg5ODVjMjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ZKSnkYJNP5mlPgHq3HOsdOb-gp5clZ8qb3awkFkYyN4)
Swift is a powerful and intuitive programming language developed by Apple. It is designed to be fast, safe, and expressive, making it an excellent choice for iOS, macOS, watchOS, and tvOS app development. SwiftUI is a declarative user interface framework introduced by Apple, enabling developers to build UIs using a simple and expressive syntax.
In Charge2Change, we leverage the capabilities of Swift and SwiftUI to create an engaging and user-friendly interface for EV owners. SwiftUI's state-driven approach simplifies the management of UI updates, making the app more efficient and responsive. Swift's type safety and modern features provide a robust foundation for implementing the app's core functionalities.
Charge2Change follows the MVVM (Model-View-ViewModel) architectural pattern. This pattern helps us to separate the presentation logic from the business logic, making the codebase more maintainable and scalable.
Model: Represents the data and business logic of the app. It contains the underlying data structures and interacts with data sources such as APIs or databases.
View: Represents the user interface of the app. It is responsible for displaying the data to the user and collecting user input.
ViewModel: Acts as a mediator between the Model and the View. It contains the presentation logic and exposes the data from the Model to the View. It also handles user interactions and updates the Model accordingly.
By adopting the MVVM pattern, Charge2Change achieves a clean separation of concerns, allowing for easier testing, code reusability, and a more organized project structure.
Charge2Change utilizes the following third-party package:
TouchVisualizer (Version 1.0.1): A package that enables touch visualization for enhanced user experience.
All data used in this project is purely mocked and for demonstration purposes only. The primary aim is to showcase the functionality and potential of incentivizing EV owners to participate in V2G programs. Please do not use this data for any real-world analysis or decision-making.
iOS 16.4 or later
We welcome contributions from anyone interested in enhancing the Charge2Change project! If you have any suggestions, bug reports, or feature requests, please feel free to open an issue or submit a pull request on our GitHub repository. Let's collaborate and make V2G participation more rewarding for EV owners together! 🙌
Charge2Change is released under the MIT License. Feel free to use, modify, and distribute the project as per the terms and conditions of the license.
We would like to express our gratitude to all the contributors who have helped shape and improve the Charge2Change project.