Giter VIP home page Giter VIP logo

weatherapp's Introduction

☁️ WeatherApp

🔎 Preview

AppPreview.mp4

🇹🇷 Türkçe

  • 👨🏻‍💻 Uygulama Hakkında

    • Uygulama temel olarak Swift içerisindeki CoreLocation'u kullanarak kullanıcının anlık konumu almaktadır. Konumundaki enlem ve boylama göre API'ya istek atılıp güncel hava durumu bilgisi gösterilmektedir.
  • 📁 Klasör Yapısı, Yazılım Mimarisi ve Teknik Detaylar

    • Verilen çalışma SwiftUI ile geliştirilmiş olup temiz kod yazılımına ve SOLID prensiplerine oldukça dikkat edilmeye çalışılmıştır. Ayrıca Swift programlama dilinin ve nesne yönelimli programlamanın tüm efektif özelliklerinin kullanılmasına özen gösterilmiştir. SwiftUI framework'ünün vermiş olduğu özellikler, esneklikler kullanılmaya ve uygulanmaya çalışılmıştır.Design Pattern olarak MVMM kullanılmış olup tasarım kısmında ise Atomic Design metodolijisi uygulanmıştır. API tarafından çekilmeyen string veriler için localizastion yapısı kurulmuştur. Github tarafında ise branch yapısına aşina olunması açısında feature bazlı branch yapısı kurgulanmış ve gerekli işlemler bittikten sonra pull request atılarak çalışma main branch'inde mergelenmiştir.
    • Klasör yapısı olarak tüm uygulama içi sabitlerimiz, modellerimiz, viewmodel sınıflarımız, enum type'larımız viewmodifier'larımız gibi projenin tüm ana hatları products klasörü altında bulunmaktadır. Uygulama içi bulunan tüm ekranlarımız ise views klasörü altında yerini almaktadır.
  • ✅ Unit Test Senaryoları

    • Kullanıcının mevcut konumunun alındığı test senaryosu. Screenshot 2023-08-08 at 05 21 58
    • Kullanıcının mevcut konumuna göre API'dan anlık hava durumunu alan test senaryosu. Screenshot 2023-08-08 at 05 31 31

📀 Kurulum

  • Projeyi klonlayın
git clone https://github.com/akaanuzman/WeatherApp
  • WeatherApp klasörü içinde bir .env dosyası oluşturun.
    • Dosya içine API_KEY'inizi girin. API_KEY = <YOUR_API_KEY>

🏴󠁧󠁢󠁥󠁮󠁧󠁿 English

  • 👨🏻‍💻 About App

    • The application basically gets the instant location of the user using CoreLocation in Swift. According to the latitude and longitude of its location, a request is made to API and current weather information is displayed.
  • 📁 Folder Structure, Software Architecture and Technical Details

    • The given work has been developed with SwiftUI and a great deal of attention has been paid to clean code software and SOLID principles. In addition, care has been taken to use all the effective features of the Swift programming language and object-oriented programming. The features and flexibility provided by the SwiftUI framework have been tried to be used and applied. MVMM has been used as the Design Pattern and the Atomic Design methodology has been applied in the design part. A localization structure has been established for string data that is not retrieved by the API. On the Github side, a feature-based branch structure was designed in order to become familiar with the branch structure, and after the necessary operations were completed, a pull request was made and merged into the working main branch.
    • As a folder structure, all the main lines of the project such as our in-app constants, models, viewmodel classes, enum types, viewmodifiers are under the products folder. All our in-app screens are located under the views folder.
  • ✅ Unit Test Scenarios

    • Test case where the current location of the user is retrieved. Screenshot 2023-08-08 at 05 21 58
    • Test scenario getting instant weather from API based on user's current location. Screenshot 2023-08-08 at 05 31 31

📀 Installation

  • Clone the project
git clone https://github.com/akaanuzman/WeatherApp
  • Create an .env file inside the WeatherApp folder.
    • Set your API_KEY in the file. API_KEY = <YOUR_API_KEY>

weatherapp's People

Contributors

akaanuzman avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.