I make a json call to get some data from as seen from the image, but I have to sort these items by stargazers_count, ie the items with the largest stargazers_count put before.
Can you give me a hand?
Code:
import SwiftUI
import AppKit
struct Obj: Codable, Identifiable {
    public var id: Int
    public var name: String
    public var language: String?
    public var description: String?
    public var stargazers_count: Int
    public var forks_count: Int
}
class Fetch: ObservableObject {
    @Published var results = [Obj]()
    init(name: String) {
        let url = URL(string: "https://api.github.com/users/"+name+"/repos?per_page=1000")!
        URLSession.shared.dataTask(with: url) { data, response, error in
            do {
                if let data = data {
                    let results = try JSONDecoder().decode([Obj].self, from: data)
                    DispatchQueue.main.async {
                        self.results = results
                    }
                    print("Ok.")
                } else {
                    print("No data.")
                }
            } catch {
                print("Error:", error)
            }
        }.resume()
    }
}
struct ContentViewBar: View {
    @ObservedObject var fetch = Fetch(name: "github")
    var body: some View {
        VStack(alignment: .leading, spacing: 0) {
            List(fetch.results) { el in
                VStack(alignment: .leading, spacing: 0) {
                    Text("\(el.name) (\(el.stargazers_count)/\(el.forks_count)) \(el.language ?? "")").padding(EdgeInsets(top: 5, leading: 0, bottom: 0, trailing: 0))
                    if el.description != nil {
                        Text("\(el.description ?? "")")
                            .font(.system(size: 11))
                            .foregroundColor(Color.gray)
                    }
                }
            }.listStyle(SidebarListStyle())
            
            //            Button(action: { NSApplication.shared.terminate(self) }){
            //                Text("X")
            //                .font(.caption)
            //                .fontWeight(.semibold)
            //            }
            //            .padding(EdgeInsets(top: 2, leading: 0, bottom: 2, trailing: 2))
            //            .frame(width: 360.0, alignment: .trailing)
        }
        .padding(0)
        .frame(width: 360.0, height: 360.0, alignment: .top)
    }
}
struct ContentViewBar_Previews: PreviewProvider {
    static var previews: some View {
        ContentViewBar()
    }
}

 
    