Home Blog Page 49

ios – Swift – Making an attempt to navigate again to my startView


Query:

I’m attempting to create an app on an apple watch that is ready to observe the repetitions of various workouts. To date, I’ve gotten down bicep curls and squats (for now). Although, I’ve an issue I’m not capable of repair. Each time I finish my exercise, it can take me to my abstract view, and after I click on performed from there, I would like it to take me again to my startScreen nevertheless it doesn’t achieve this. As a substitute, it takes me again to my exercise display screen and its simply caught there. I do know there’s loads of code to take a look at but when somebody may please assist me it could imply lots.**

**I’ve solely supplied the code that’s helpful beneath, so that you may see code for different views that I have never given code to.

Choose Subject Space

Query

Physique

I’m attempting to create an app on an apple watch that is ready to observe the repetitions of various workouts. To date, I’ve gotten down bicep curls and squats (for now). Although, I’ve an issue I’m not capable of repair. Each time I finish my exercise, it can take me to my abstract view, and after I click on performed from there, I would like it to take me again to my startScreen nevertheless it doesn’t achieve this. As a substitute, it takes me again to my exercise display screen and its simply caught there. I do know there’s loads of code to take a look at but when somebody may please assist me it could imply lots.

I’ve solely supplied the code that’s helpful beneath, so that you may see code for different views that I have never given code to.

import SwiftUI
@fundamental
struct RepBuddyWatchApp_Watch_AppApp: App {
    @StateObject personal var workoutManager = WorkoutManager()
    @State personal var navigationPath = NavigationPath()

    var physique: some Scene {
        WindowGroup {
            NavigationStack(path: $navigationPath) {
                StartScreen(navigationPath: $navigationPath)
                    .environmentObject(workoutManager) // <- Add this line
            }
            .sheet(isPresented: $workoutManager.showingSummaryView, onDismiss: {
                print("Sheet dismissed, resetting navigationPath")
                workoutManager.showingSummaryView = false // Reset the state
                workoutManager.selectedWorkout = nil
            }) {
                SummaryView(navigationPath: $navigationPath)
                    .environmentObject(workoutManager)
            }
            
            
            
        }
        
    }
}
import SwiftUI
import HealthKit
struct WorkoutType: View {
    @EnvironmentObject var workoutManager: WorkoutManager
    @Binding var navigationPath: NavigationPath
    
    var workoutTypes: [(type: HKWorkoutActivityType, name: String)] = [
        (.traditionalStrengthTraining, "Bench Press"),
        (.traditionalStrengthTraining, "Bicep Curls"),
        (.traditionalStrengthTraining, "Squats"),
        (.traditionalStrengthTraining, "Tricep Extensions"),
    ]

    var physique: some View {
        Listing(workoutTypes, id: .title) { exercise in
            NavigationLink(vacation spot: SessionPagingView(
                navigationPath: $navigationPath,
                workoutType: exercise.kind,
                workoutName: exercise.title // Cross the title right here
            ).environmentObject(workoutManager)) {
                Textual content(exercise.title)
            }
        }
        .listStyle(.carousel)
        .navigationTitle("Choose a Exercise")
        .onAppear {
            workoutManager.requestAuthorization { _ in }
        }
    }
}

#Preview {
    WorkoutType(navigationPath: .fixed(NavigationPath()))
        .environmentObject(WorkoutManager())
}

// Conforming HKWorkoutActivityType to Identifiable
extension HKWorkoutActivityType: @retroactive Identifiable {
    public var id: UInt {
        rawValue
    }

    var title: String {
        change self {
        case .working:
            return "Run"
        case .biking:
            return "Bike"
        case .strolling:
            return "Stroll"
        case .traditionalStrengthTraining:
            return ""
        default:
            return ""
        }
    }
}
import SwiftUI

struct ControlsView: View {
    @EnvironmentObject var workoutManager: WorkoutManager

    var physique: some View {
        HStack {
            VStack {
                Button {
                    if let session = workoutManager.session {
                        if session.state == .working || session.state == .paused {
                            workoutManager.endWorkout()
                        } else {
                            print("Exercise session is already ended or in an invalid state: (session.state)")
                        }
                    }
                } label: {
                    Picture(systemName: "xmark")
                }
                .tint(Colour.pink)
                .font(.title2)
                Textual content("Finish")
            }

            VStack {
                Button {
                    workoutManager.togglePause()
                } label: {
                    Picture(systemName: workoutManager.working ? "pause" : "play") // Begins as "pause"
                }
                .tint(Colour.yellow)
                .font(.title2)
                Textual content(workoutManager.working ? "Pause" : "Resume") // Textual content begins as "Pause"
            }
        }
    }
}


#Preview {
    ControlsView()
        .environmentObject(WorkoutManager())
}
import Basis
import HealthKit
import CoreMotion

class WorkoutManager: NSObject, ObservableObject { //added to myWorkoutsApp bc its an observable object
    var selectedWorkout: HKWorkoutActivityType? {
            didSet {
                guard let selectedWorkout = selectedWorkout, let selectedWorkoutName = selectedWorkoutName else { return }
                startWorkout(workoutType: selectedWorkout, workoutName: selectedWorkoutName)
            }
        }
        
    var selectedWorkoutName: String? // New property
    @Revealed var elapsedTime: TimeInterval = 0
    personal var timer: Timer?
    @Revealed var showingSummaryView: Bool = false {
        didSet {
            // Sheet dismissed
            if showingSummaryView == false {
                resetWorkout()
            }
        }
    }
    
    
    //REPVIEW STUFF
    
    
                // Begin the suitable train monitoring
                if workoutType == .traditionalStrengthTraining {
                    change workoutName {
                    case "Bench Press":
                        motionTracker.startTracking(train: .benchPress)
                    case "Squats":
                        motionTracker.startTracking(train: .squats)
                    case "Bicep Curls":
                        motionTracker.startTracking(train: .bicepCurls)
                    case "Tricep Extensions":
                        motionTracker.startTracking(train: .tricepExtensions)
                    default:
                        print("Unknown exercise kind: (workoutName)")
                    }
                }
            }
        }
    //repbuddy
    personal let motionManager = CMMotionManager()
        personal var lastAcceleration: Double = 0.0
        personal var isCurling = false
        @Revealed var curlCount = 0
    
    func stopWorkout() {
            session?.finish()
            motionTracker.stopTracking()
        }

        override init() {
            tremendous.init()
            motionTracker.$repCount.assign(to: &$repCount)
        }
    
   
    
    **func resetWorkout() {
        // Reset squat monitoring
        
        
        // Reset normal exercise properties
        selectedWorkout = nil
        builder = nil
        session = nil // No must name session?.finish() right here
        exercise = nil
        activeEnergy = 0
        averageHeartRate = 0
        heartRate = 0
        distance = 0
        working = false
    }**

    
    @Revealed var hasRequestedAuthorization = false
    // Request authorization to entry HealthKit.
    func requestAuthorization(completion: @escaping (Bool) -> Void) {
        
   
    // MARK: - State Management

    // The exercise session state.
    @Revealed var working = false

    func pause() {
        session?.pause()
    }

    func resume() {
        session?.resume()
    }
    
    @Revealed var isPausing: Bool = false
    
    func togglePause() {
        guard !isPausing else { return } // Stop speedy toggling
        isPausing = true

        if working {
            pause()
            working = false
            motionTracker.stopTracking() // Cease monitoring reps when paused
        } else {
            resume()
            working = true
            if selectedWorkout == .traditionalStrengthTraining, let selectedWorkoutName = selectedWorkoutName {
                change selectedWorkoutName {
                case "Bench Press":
                    motionTracker.startTracking(train: .benchPress)
                case "Squats":
                    motionTracker.startTracking(train: .squats)
                case "Bicep Curls":
                    motionTracker.startTracking(train: .bicepCurls)
                case "Tricep Extensions":
                    motionTracker.startTracking(train: .tricepExtensions)
                default:
                    print("Unknown exercise: (selectedWorkoutName)")
                }
            }
        }

        DispatchQueue.fundamental.asyncAfter(deadline: .now() + 1) {
            self.isPausing = false
        }
    }

    @Revealed var isEndingWorkout = false

    func endWorkout() {
        guard !isEndingWorkout else { return } // Stop a number of calls
        isEndingWorkout = true
        
        print("Ending exercise, showingSummaryView: (showingSummaryView)")
        guard !showingSummaryView else { return } // Stop a number of sheet displays
        
        session?.finish()
        builder?.endCollection(withEnd: Date()) { success, error in
            if let error = error {
                print("Failed to finish knowledge assortment: (error.localizedDescription)")
            } else {
                print("Knowledge assortment ended efficiently")
                self.saveWorkout()  // Name saveWorkout() after ending
            }
        }
        
        DispatchQueue.fundamental.async {
            self.showingSummaryView = true // Set off sheet
        }
        
        DispatchQueue.fundamental.asyncAfter(deadline: .now() + 1) {
            self.isEndingWorkout = false
        }

        updateRunningState()
    }

    func saveWorkout() {
        builder?.finishWorkout { exercise, error in
            DispatchQueue.fundamental.async {
                if let error = error {
                    print("Error saving exercise: (error.localizedDescription)")
                    return
                }
                
                if let exercise = exercise {
                    self.exercise = exercise
                    print("Exercise saved: (exercise)")
                } else {
                    print("Exercise is nil")
                }
            }
        }
    }
    
    public func updateRunningState() {
        DispatchQueue.fundamental.async {
                if let session = self.session {
                    _ = self.working
                    self.working = (session.state == .working)
                } else {
                    print("No energetic session present in updateRunningState.")
                    self.working = false
                }
            }
        }
    
    }
    func recoverWorkoutSession() {
        healthStore.recoverActiveWorkoutSession { (session, error) in
            if let session = session {
                self.session = session
                self.session?.delegate = self
                self.builder = session.associatedWorkoutBuilder()
                self.builder?.delegate = self

                // Resume the session
                self.session?.resume()
            } else if let error = error {
                print("Didn't get well exercise session: (error.localizedDescription)")
            }
        }
    }
    
}

                    default:
                        print("Unknown exercise: (selectedWorkoutName)")
                    }
                }
            case .paused:
                self.working = false
                self.motionTracker.stopTracking() // Cease rep monitoring when paused
            case .ended, .stopped, .ready:
                self.working = false
                self.motionTracker.stopTracking() // Guarantee reps cease when exercise ends
            @unknown default:
                self.working = false
            }

            self.updateRunningState()
        }
    }

    // Add this technique to deal with session failures
    func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
        DispatchQueue.fundamental.async {
            print("Exercise session failed with error: (error.localizedDescription)")
        }
    }
}

// MARK: - HKLiveWorkoutBuilderDelegate
// MARK: - HKLiveWorkoutBuilderDelegate
extension WorkoutManager: HKLiveWorkoutBuilderDelegate {
    func workoutBuilderDidCollectEvent(_ workoutBuilder: HKLiveWorkoutBuilder) {
    }

    func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didCollectDataOf collectedTypes: Set) {
        for kind in collectedTypes {
            
            
            guard let quantityType = kind as? HKQuantityType else { return }

            let statistics = workoutBuilder.statistics(for: quantityType)

            // Replace the revealed values.
            updateForStatistics(statistics)
        }
        
        // Repeatedly replace the elapsedTime from the builder
        DispatchQueue.fundamental.async {
            self.elapsedTime = workoutBuilder.elapsedTime
        }
    }
}
import SwiftUI
struct RepView: View {
    @EnvironmentObject var workoutManager: WorkoutManager
    var workoutName: String

    var physique: some View {
        VStack {
            Textual content("Counting (workoutName)")
                .font(.title2)
                .multilineTextAlignment(.heart)
                .lineLimit(4)
            
            
            Textual content("(workoutManager.repCount)") // Up to date to make use of MotionTracker's rep rely
                .font(.largeTitle)
                .multilineTextAlignment(.heart)
                .daring()
                .foregroundColor(.inexperienced)

            Textual content("reps accomplished")
                .font(.caption)
                .multilineTextAlignment(.heart)
        }
    }
}

#Preview {
    RepView(workoutName: "Bicep Curls")
        .environmentObject(WorkoutManager())
}
import SwiftUI
import HealthKit

struct SummaryView: View {
    @Atmosphere(.dismiss) var dismiss
    @EnvironmentObject var workoutManager: WorkoutManager
    @Binding var navigationPath: NavigationPath // Make it elective

    
    var physique: some View {
        if workoutManager.exercise == nil {
            ProgressView("Saving exercise")
                .navigationBarHidden(true)
                    Button("Achieved") {
                        dismiss()
                        DispatchQueue.fundamental.async {
                            navigationPath.removeLast(navigationPath.rely) // Reset the navigation path
                        }
                    }
                    
                }
                .scenePadding()
            }
            .navigationTitle("Abstract")
            .navigationBarTitleDisplayMode(.inline)
        }
    }
}

#Preview {
    SummaryView(navigationPath: .fixed(NavigationPath()))
        .environmentObject(WorkoutManager())
}

struct SummaryMetricView: View {
    var title: String
    var worth: String

    var physique: some View {
        Textual content(title)
        Textual content(worth)
            .font(.system(.title2, design: .rounded)
                    .lowercaseSmallCaps()
            )
            .foregroundColor(.accentColor)
        Divider()
    }
}

The Subsequent Frontier of Buyer Success for Companions


The client success panorama is quickly reworking right into a digital-first mannequin, pushed by the necessity for scalable, cost-effective practices and rising buyer desire for self-serve experiences. In keeping with TSIA’s State of Buyer Success 2025 report, a strategic shift towards digital-led engagements is rising. And, as detailed in Digital Buyer Success by Nick Mehta and Kellie Capote, “the subsequent frontier of buyer success is digital”, including that “we consider each firm ought to now be desirous about how (not whether or not) to ship a digital-first buyer expertise.”

As we boldly enterprise into this digital frontier, Cisco acknowledges the important position companions play as trusted guides to clients, and we’re dedicated to constantly innovating to empower them with the methods and instruments to thrive.

Defining Digital Buyer Success

Digital buyer success is a method to drive buyer adoption, retention, and development by means of personalised omnichannel engagements. It empowers customers to self-serve utilizing data-driven automation and centralized assets. This method facilities round delivering useful experiences all through the shopper lifecycle, not changing people – however harmonizing digital and human interactions.

Past Conventional Segmentation

Digital desire spans all buyer segments, necessitating a shift from conventional high-touch, mid-touch, and tech-touch methods to a common, digital-first expertise. This mannequin helps self-service throughout all buyer tiers, supported by buyer success managers (CSMs) for bigger purchasers and pooled CSMs as wanted.

The “3 Ps” Framework

Digital buyer success is characterised by three key attributes: Proactive, Customized, and Predictive.

  • Proactive: Facilitates real-time buyer self-service by means of centralized assets equivalent to group boards and guided tutorials
  • Customized: Tailors experiences to particular person personas and utilization patterns utilizing automated digital journeys and GenAI capabilities
  • Predictive: Anticipates wants and orchestrates experiences utilizing superior knowledge science and AI to establish dangers, make selections, and ship contextual suggestions

Empowering Companions to Scale by means of Digital

Cisco makes use of all three of these attributes in our Lifecycle Benefit program, enabling companions to ship a robust digital buyer success expertise at scale. Companions acquire the advantage of Cisco’s predictive AI fashions, personalised content material, expertise automation know-how, and proactive adoption-focused digital journeys that information clients by means of the lifecycle – whereas sustaining their model id and first relationship with the shopper.

Saying New Lifecycle Benefit Program Enhancements

The core worth of Lifecycle Benefit is centered on delivering an incredible digital buyer expertise collectively with our companions, however that have should even be coordinated with a associate’s CSMs to make sure cohesion between digital and human touchpoints. Our new program enhancements present that connection.

  1. New Digital Associate Playbooks: Introducing our newly redesigned Associate Playbooks – the primary of which launches with the brand new Cisco eXtended Detection and Response (XDR) journey. This complete information helps companions speed up their clients’ adoption journey. Along with an summary of the digital content material routinely going out to clients at key lifecycle levels, the Playbook affords important product particulars and buyer outcomes, in addition to ideas for companions to handle potential adoption obstacles.
  2. New Digital Advisable Actions: Companions can obtain prescriptive insights in actual time with Lifecycle Benefit’s Advisable Motion Supply (RAD) engine. The most recent choices embrace new insights associated to the important onboarding stage, in addition to de-risk insights for patrons exhibiting indicators of renewal danger.

Onboarding Advisable Actions

Analysis reveals that profitable onboarding within the first 30 days is a powerful predictor of buyer loyalty. Our proactive notification system will ship Onboarding Progress Stories on to companions – of their most well-liked channel – at key milestones to make sure potential deployment challenges are resolved early. The primary section focuses on Cisco XDR, offering companions with:

  • Proactive updates on every buyer’s XDR onboarding progress (based mostly on telemetry) at key intervals over the important first few weeks
  • Automated alerts for patrons who haven’t accomplished onboarding inside 30 days
  • Actionable insights and beneficial steps to drive profitable buyer implementation

De-Danger Advisable Actions

Cisco’s highly effective danger knowledge science fashions enable us to establish and predict clients prone to not renewing sooner than ever of their product adoption—and we goal to empower our companions with the insights and steps to assist mitigate this danger.

By the de-risk beneficial actions, companions can:

  • Obtain automated buyer stories to find out which accounts have been recognized as being in danger
  • Log a remediation plan, buyer pulse, and de-risk standing for accounts actioned
  • Assessment beneficial steps to mitigate renewal danger and safeguard retention

Embrace the Future with Cisco

Because the professional authors of Digital Buyer Success correctly put it, “Your CS group has an immense alternative – the prospect to reinvent itself with digital instruments, methods, and ways, that, in flip, current you with the chance to reinvent your whole firm.”

As we forge forward into this subsequent frontier of digital-first buyer success, Cisco stays devoted to supporting our companions. By adopting these new capabilities, companions can ship distinctive worth to their clients, construct enduring relationships, and obtain scalable success.

 

To leverage these new Advisable Actions and be taught extra about what’s subsequent, attain out to our Lifecycle Benefit crew.

 


We’d love to listen to what you assume. Ask a Query, Remark Beneath, and Keep Related with #CiscoPartners on social!

Cisco Companions Fb  |  @CiscoPartners X/Twitter  |  Cisco Companions LinkedIn

Share:



China’s Photo voltaic Business Is Crushing It On Photo voltaic Conversion Effectivity



Join CleanTechnica’s Weekly Substack for Zach and Scott’s in-depth analyses and excessive stage summaries, join our day by day publication, and/or comply with us on Google Information!


Final Up to date on: 14th April 2025, 11:35 am

Deliberately or not, the malevolently incompetent Commander-in-Chief who occupies the White Home has all however assured that China will proceed to dominate the worldwide photo voltaic {industry}, leaving the US behind within the dustbin of historical past. Exhibit A is the Chinese language photo voltaic producer LONGi Inexperienced Vitality Expertise, which has simply unveiled a brand new 670-watt module with a conversion effectivity of 24.8% at a showcase in Anhui, China.

24.8% Conversion Effectivity For A TOPCon Photo voltaic Cell

LONGi emerged as an early chief within the international photo voltaic {industry}. In 2020 the startup turned the primary producer to ship greater than 20 gigawatts’ value of photo voltaic modules, a feat that demonstrates how far, and how briskly, the {industry} has grown. Simply 10 years earlier, the overall variety of photo voltaic modules deployed by all producers collectively barely topped 17 gigawatts.

The corporate has been very busy since 2020. Final week LONGi introduced an improve to its flagship Hello-MO 9 TOPCon photo voltaic module, which is a BC (again contact) module designed with {the electrical} connections on the rear of the cell to maintain the sun-facing floor freed from interruption.

As described by LONGi, the upgraded Hello-Mo 9 achieves an industry-leading photo voltaic conversion effectivity of 24.8%. That represents an influence enchancment of 10 watts and a peak of 670 watts over the earlier Hello-MO 9 module.

LONGi additionally claims that the brand new module is 1.5% extra environment friendly than different TOPCon modules available on the market, and it will increase the put in capability of a photo voltaic array by 6.4%, in comparison with different modules in the identical quantity of area.

What Is This TOPCon Of Which You Converse?

TOPCon is brief for tunnel oxide passivated contacts, a comparatively latest growth within the photo voltaic {industry} aimed toward enhancing photo voltaic conversion effectivity in silicon photo voltaic cells. In a assessment of the literature revealed final 12 months within the journal Superior Supplies, a analysis crew primarily based in China reported that the Worldwide Expertise Roadmap of Photovoltaics “forecasts TOPCon to develop into an necessary expertise regardless of a couple of remaining challenges.”

The researchers additionally observe that the worldwide photo voltaic {industry} has but to coalesce round a set of finest practices for TOPCon manufacturing, however LONGi is just not ready round for that to occur.

The corporate has spent the previous 12 months or so demonstrating the brand new Hello-MO 9 within the discipline. “In Hainan, China’s high-temperature, high-humidity surroundings, LONGi’s Hello-MO 9 module delivers a 1.89% per-watt power yield benefit over standard TOPCon modules,” the corporate states. The Hello-MO 9 additionally acquired a exercise in Riyadh, Saudi Arabia, the place LONGi cites a achieve of 1.62%.

“Knowledge from extra BC energy crops additional verify the distinctive energy technology capabilities of the HPBC 2.0-powered Hello-MO 9 module, underscoring its confirmed reliability throughout various international climates,” LONGi emphasizes, with HPBC referring to the corporate’s loss-reducing hybrid passivated again contact expertise.

Extra Again Contact Photo voltaic Modules For The World Photo voltaic Business

To assist nudge the developer aspect of the worldwide photo voltaic {industry} into adopting its BC expertise, final week LONGi additionally launched a contest referred to as the “World Optimum BC Photo voltaic Energy Plant Design Problem,” in partnership with the impartial inspection providers establishment TÜV Rheinland.

TÜV Rheinland is tasked with evaluating the entries, bearing in mind innovation in design together with BC expertise integration and different parameters.

“The competitors, open to consultancies, EPC corporations, and renewable power traders worldwide, invitations progressive designs for ground-mounted energy plant initiatives exceeding 50MW throughout various software situations,” LONGi explains.

Maintain on to your hats. LONGi additionally let phrase slip that its HIBC (Heterojunction Interdigitated Again Contact) silicon photo voltaic cells have simply acquired a certification of 27.81% conversion from the Institute for Photo voltaic Vitality Analysis Hamelin in Germany.

Right here Comes The US Photo voltaic Business

President Trump’s fossil-friendly power coverage apart, the US photo voltaic {industry} nonetheless has the potential to maintain up its finish of worldwide manufacturing over the following 3.75 years till January 20, 2028, when Trump peacefully leaves workplace as stipulated within the US Structure, and abroad traders are nonetheless keen to assist.

Joint ventures with abroad corporations to fabricate photo voltaic panels within the US have develop into a typical characteristic of the home photo voltaic {industry}. That features Longi, which partnered with the US agency Invenergy in a three way partnership to determine a brand new manufacturing unit in Pataskala, Ohio, below the title Illuminate USA. The power started producing photo voltaic panels in February of 2024.

The 5-gigawatt, 1.1 million sq. foot facility hosts eight manufacturing traces able to spitting out greater than 9 million photo voltaic panels per 12 months as soon as revved as much as full capability. The 540-560 watt panels are marketed below the commerce title “Illumina 5,” with a photo voltaic conversion effectivity of 21.7% (to not be confused with a hair product of the identical title).

Illuminate USA introduced its one-year milestone on February 6, noting that it reached the two.5 gigawatt mark. “In simply the primary 12 months of operation, the corporate achieved a serious manufacturing milestone, manufacturing over 4.5 million photo voltaic panels, and rising to the biggest producer in the USA,” the agency elaborated.

What About These Tariffs?

Sure, what about them? Though Illuminate assembles its photo voltaic panels within the US, it depends upon the worldwide photo voltaic {industry} to provide parts. As of February, although, Illuminate was not significantly nervous about that. “Illuminate USA is nicely positioned to realize its annual goal of producing over 9.2 million photo voltaic panels this 12 months,” the corporate acknowledged.

“The corporate can be centered on increasing its product choices and investing in new applied sciences to take care of its management within the renewable power sector,” they added.

Within the meantime, solar energy plant builders and traders are relying on an ample provide of photo voltaic panels to maintain the US photo voltaic {industry} transferring alongside. That features a wholesome help from abroad traders. In latest weeks, for instance, the US photo voltaic developer Sunraycer Renewables introduced a $475 million financing cope with MUFG Financial institution, Ltd., Nomura Securities Worldwide, Inc. and Norddeutsche Landesbank Girzonentrale.

One other US photo voltaic developer, Silicon Ranch, just lately acquired a lift of its personal from the Netherlands agency AIP Administration, to the tune of $500 million. “The photo voltaic developer has amassed a photo voltaic portfolio totaling 3.6 gigawatts, and is working in direction of a complete of 10 gigawatts by 2030,” CleanTechnica famous.

One other renewable power funding agency that got here to play on a world stage is Minnesota-based Excelsior Vitality Capital, which closed its $1billion+ Excelsior Renewable Vitality Funding Fund II on April 8. Fund II, which follows the earlier $505  million Fund I spherical of 2021, is anchored by the Growth Financial institution of Japan with an help from restricted companions in  Japan, Europe, Australia, and the Center East in addition to the US.

What was that about bringing again coal once more?

Picture: The main Chinese language photo voltaic producer LONGi goals to shake up the worldwide photo voltaic {industry} with a brand new 24.8% effectivity score for its Hello-MO 9 photo voltaic module (courtesy of Longi by way of PR Newswire).

Whether or not you’ve gotten solar energy or not, please full our newest solar energy survey.




Have a tip for CleanTechnica? Wish to promote? Wish to counsel a visitor for our CleanTech Speak podcast? Contact us right here.


Join our day by day publication for 15 new cleantech tales a day. Or join our weekly one if day by day is simply too frequent.


Commercial



 


CleanTechnica makes use of affiliate hyperlinks. See our coverage right here.

CleanTechnica’s Remark Coverage




Undertaking Administration for Software program Improvement


Software program improvement is all the time a race in opposition to time. A consumer postponed the deadline, testing revealed important bugs, and the challenge workforce was in a rush for every week. All this occurs as a result of duties reside in heads, chats, and a bunch of separate information. Nobody can actually see who’s busy, what phases are slowing down the work, and when all the pieces must be prepared.

A Gantt Chart is a visible planning software that reveals activity deadlines, their order, and progress within the type of horizontal bars to assist handle the challenge and sources.

Undertaking Administration for Software program Improvement

The primary worth of a Gantt Chart is its capacity to show summary plans right into a concrete work schedule. For instance, with out it, it’s simple to overlook {that a} delay in API improvement mechanically shifts testing deadlines, and an overloaded developer won’t be able to fulfill the deadline.

With a diagram, these connections grow to be apparent: if one activity is stretched, you’ll be able to see at a look what different deadlines will comply with. That is particularly necessary in Agile tasks the place the plan is consistently being adjusted — the Chart helps to rapidly reallocate sources with out dropping sight of the massive image.

Step-by-Step Information to Making a Gantt Chart for Software program Initiatives

Let’s perceive methods to create a very helpful Chart in your software program challenge. It’s not only a fairly image, however a working software that may allow you to hold all the pieces below management.

Outline the Scope and Targets

All of it begins together with your imaginative and prescient. What precisely do you wish to create and why? It may be a very new digital product or a revision of a present system. Your online business targets and goals are the start line for all challenge work. The extra clearly they’re articulated, the extra exactly we are able to plan timelines and prioritize.

You will need to perceive the scope of the challenge: which options are important for launch, and what may be carried out later. For instance, in case you are launching an internet retailer, you must determine upfront whether or not the advice system will probably be included within the first model or will seem later. This can allow you to to keep away from a proliferation of duties and deal with what’s necessary.

Break Down the Undertaking into Duties

Now that the targets and features are outlined, we divide the challenge into logical blocks — every of which represents an entire enterprise performance: consumer registration, order placement, admin panel, and so on.

Such detailing means that you can clearly see what the entire improvement course of consists of and the way these components will probably be carried out step-by-step. It’ll additionally allow you to to regulate the challenge progress even with out diving into technical nuances.

Assign Duties and Set Deadlines

Collectively we outline key deadlines — once you anticipate the primary outcomes, once you want an MVP or a demo model for buyers. Primarily based on this, we’ll construct reasonable planning, taking into consideration out there sources and priorities.

Every activity within the Gantt chart will probably be assigned an executor, and deadlines will probably be balanced in opposition to its workload. This provides you the boldness that the work is shifting on the set tempo and with out overloading the workforce.

Select a Dependable Software program Supplier

A dependable expertise associate is the idea for a profitable challenge. SCAND has been creating turnkey software program for over 20 years and helps tasks in any respect phases — from concept to implementation.

SCAND can develop a software with a Gantt chart — both as half of a bigger product (e.g., a challenge administration system) or as a separate module. We have already got expertise in creating web-interfaces with interactive visualizations, together with complicated charts, timelines and task-tracking duties.

Visualize Dependencies and Milestones

A Gantt chart not solely reveals how lengthy sure milestones will take, but in addition how they relate to one another. If one activity is delayed, it might probably have an effect on the timeline of your complete challenge. We mark such dependencies upfront to keep away from a “domino impact” in deadlines.

The diagram can even mark key milestones — factors at which you will need to test in opposition to the plan: completion of a block, preparation for testing, launch of performance. These phases let you appropriate the work progress in time, if one thing goes improper.

Observe Progress and Modify the Plan

As soon as the challenge is began, the Gantt Сhart turns into your predominant monitoring software. You will note not solely what has already been accomplished, but in addition which duties are in progress, that are deliberate, and the way a lot precise progress meets expectations.

If adjustments seem — for instance, you determine to hurry up the launch of a sure perform – we flexibly rearrange the plan: reallocate duties, shift priorities, regulate deadlines. A Сhart shouldn’t be a once-and-for-all doc, however a residing challenge administration software.

The place are Gantt Charts Used?

From large-scale development tasks to advertising and marketing campaigns, Gantt charts allow you to handle tasks in a variety of industries. This visible planning software turns complicated processes into clear schedules, making it simple to regulate deadlines, sources and milestones.

Gantt Charts

Building and Improvement

Gantt charts assist to obviously plan development phases, management deadlines and coordinate the work of contractors. Avoiding delays is important on this area, so visualizing timelines and sources enormously improves challenge administration effectivity.

Advertising and PR

Gantt charts let you synchronize the launch of promoting campaigns, PR-actions and content material plans. They’re particularly helpful when getting ready large-scale occasions, the place you will need to meet deadlines and coordinate the work of a number of departments.

Manufacturing and Logistics

They’re used to plan manufacturing cycles, management capability utilization and optimize logistics routes. They assist to keep away from downtime and supply disruptions, which is very necessary in tight deadlines and extremely aggressive environments.

Training

College professors and directors use Gantt charts to plan curricula, scientific analysis and organizational actions. This makes it simpler to regulate tutorial deadlines and workload distribution.

Healthcare

In drugs, Gantt charts assist to coordinate the work of departments, plan repairs, tools purchases and scientific analysis. They’re particularly helpful in managing giant tasks, such because the introduction of latest medical requirements.

E-commerce and Retailing

They’re utilized in getting ready marketplaces, launching promotions and managing stock. In a extremely dynamic on-line gross sales surroundings, visible planning helps keep away from overlaps and maximize marketing campaign effectivity.

Finest Instruments for Creating Gantt Charts in Software program Improvement

Charts are now not simply static Charts in Excel. Fashionable instruments supply highly effective options that may transform the method to IT challenge administration. Let’s check out the important thing options and their distinctive options, that are not often written about in official manuals.

Gantt Charts in Software Development

Microsoft Undertaking — Highly effective Instrument for Advanced Administration

A traditional challenge administration software with highly effective planning capabilities. Appropriate for complicated IT tasks with a number of dependencies and sources. Permits detailed customization of duties, deadlines, workforce workload, and demanding path. Minuses — excessive value and complexity for newcomers.

Past the essential performance, MS Undertaking hides a number of skilled options. For instance, the “Useful resource Saving” perform mechanically redistributes the load between workers when one among them is overloaded. “Slack time” (slack time) reveals how a lot you’ll be able to delay a activity with out affecting the challenge timeline. Particularly helpful is the flexibility to mannequin “what if” — you’ll be able to take a look at totally different situations of challenge improvement with out altering the essential plan.

Jira with Plugins — Gantt Charts for Agile Purists

Simply by itself, Jira doesn’t help Gantt Charts, however with plugins, it turns into a useful software for Agile groups. Particularly helpful in case you are already working in Jira — all duties, sprints, and dependencies are mechanically displayed in Gantt. On the draw back, you should purchase plugins and visualization shouldn’t be all the time intuitive.

Many individuals don’t know that in Jira you’ll be able to create a “reside” Chart that mechanically updates as duties transfer within the kanban. The BigGantt Professional plugin can visualize dependencies between epics, and Superior Roadmaps has a singular forecasting function — the system analyzes historic information and predicts the likelihood of assembly deadlines. Particularly helpful for Scrum masters: you’ll be able to see how altering the scope of a dash will have an effect on the discharge schedule.

Monday.com — Gantt Charts that Each Group Member Can Perceive

Versatile and trendy Gantt Charts software program with visible planning. Appropriate for small to medium-sized groups. Lets you simply drag and drop duties, customise dependencies, and monitor progress. Has integrations with GitHub, Slack, and different companies. Minus — restricted depth of element in comparison with MS Undertaking.

Working with Gantt Charts

Along with commonplace performance, Monday.com gives uncommon methods to current information. For instance, the function to create a Gantt Chart known as “Gantt View”. To make use of this function, be sure you have a Timeline Column or Date Column in your board. You may then add a Gantt view by deciding on the “Gantt” possibility from the board views menu. This can let you visualize challenge duties and dependencies in a Gantt Chart format.

A novel function is the automated creation of filler duties for unplanned work based mostly on historic information. The system is ready to visualize blocking elements with particular icons, and clever prompts counsel optimum schedules based mostly on previous tasks.

Asana — Timeline’s Hidden Options

A easy and handy software for groups that don’t want complicated analytics. Chart (referred to as “Timeline” in Asana) helps visualize deadlines and dependencies, however the performance is inferior to specialised options. Appropriate for startups and small tasks.

Many individuals use Asana Timeline superficially, unaware of the superior options. For instance, you’ll be able to allow “Useful resource Planning Mode”, which reveals not solely deadlines but in addition the load of every participant by colour indication. An particularly helpful function is “Automated Alignment” — when shifting one activity, the system suggests optimum shifts for dependent parts.

ClickUp — Subsequent Era Gantt Charts

A flexible software with a superb stability between simplicity and performance. Constructed-in Gantt Chart permits versatile administration of duties, sources, and deadlines. There’s computerized alignment of deadlines when the plan adjustments. Appropriate for any sized IT workforce.

ClickUp gives a number of distinctive options: “Dynamic Zoom” means that you can go from an in depth day to a yearly overview with a single mouse motion.

The “Floating Deadlines” function mechanically adjusts deadlines when dependent duties change.

Particularly helpful is the “Evaluate Mode” — you’ll be able to overlay the present plan on the unique one and instantly see the variations. For distributed groups, built-in commenting proper on the timeline could also be helpful.

Selecting the Finest Instruments for Working with Gantt Charts

When organizing the workflow utilizing Charts, it is vitally necessary to decide on the suitable software, which ought to correspond to the particular challenge duties and peculiarities of the workforce’s work.

Gantt Charts

Hidden and Superior Capabilities in Undertaking Administration Platforms

For tasks that require an built-in method to challenge administration software program, Microsoft Undertaking stays the undisputed chief. Its highly effective performance is very in demand when working with complicated work breakdown constructions and the necessity to create templates for repetitive tasks.

For groups working with Agile methodologies and actively utilizing Gantt Charts, Jira with the Superior Roadmaps plugin is the optimum resolution. This mix permits not solely to automate the method of forecasting deadlines but in addition to successfully handle key challenge milestones by rapidly adapting the Gantt Chart work schedule to the altering challenge scope.

When visibility and ease of visualization are a precedence, Monday.com is the software to contemplate. This software gives an intuitive interface that makes managing your tasks a lot simpler for non-technical groups.

For startups and small groups with a restricted finances, a superb possibility is ClickUp, which offers a primary set of features for working with Gantt Charts with out further prices. Though its capabilities are considerably inferior to skilled options, it’s fairly able to dealing with the essential duties utilized in challenge administration.

Finest Practices for Utilizing Gantt Charts in Software program Improvement

For Charts to actually assist with challenge actions, it’s necessary not simply to attract them, however to adapt them to the dynamics of software program improvement. Listed here are confirmed practices that may make them helpful, not only a fairly visible challenge.

Time and Useful resource Optimization

Use a Gantt Chart to establish bottlenecks within the challenge. Commonly analyze the distribution of duties amongst builders — if one specialist is overloaded and one other has spare capability, this can be a cause to redistribute the load.

Regulate the most important duties that decide the challenge schedule — in the event that they get delayed, all deadlines will undergo. Prioritize them first. To estimate time extra precisely, use information from previous Gantt Chart examples — some companies (e.g. Jira with add-ons) can mechanically counsel reasonable deadlines based mostly on earlier work.

Flexibility and Customization of the Plan

In IT tasks, change is the norm, not the exception. A Chart shouldn’t be a static doc. Commonly replace activity statuses, make fast changes when necessities change, and overview dependencies between phases.

If deadlines shift, use the auto-align function (out there on Monday.com and ClickUp) to see at a look the way it will have an effect on the general challenge plan.

It’s necessary to maintain a stability — too frequent adjustments can disorient the workforce, so solely seize significant changes.

Integration with Agile/Scrum Methodologies

Many individuals wrongly take into account the software for waterfall tasks solely (classical, cascade mannequin). In apply, they can be utilized successfully in Agile tasks as nicely.

Hyperlink the diagram to the sprints — every iteration turns into a separate block on the timeline. In Jira, this may be accomplished through plugins (e.g. BigGantt) that mechanically synchronize information from the backlog.

Don’t attempt to element all duties within the Gantt for a number of sprints forward — depart room for maneuvering, fixing solely the principle phases and dependencies.

The Gantt Chart

By following these practices, you’ll flip formal planning into an efficient IT challenge administration mechanism.

Make It Straightforward: Why Gantt Charts Stay Important for Undertaking Administration

Regardless of the frequent perception that Gantt charts are used solely in waterfall tasks, they are often no much less efficient in agile improvement methodologies. The primary factor is to make use of them appropriately.

Plan Using Gantt Charts

Visualizing duties on a timeline helps your complete workforce, together with non-technical folks, to rapidly perceive the p.c full and dependencies between duties.

You may see at a look which milestones are important and the way a delay in a single space of labor will have an effect on the general timeline. As well as, trendy instruments make it simple to adapt the diagram to adjustments in shift begin and finish dates, making it a useful software even below situations of uncertainty.

The secret is to not flip it into a proper report however to make use of it as a residing planning software that’s frequently up to date because the challenge evolves.

How one can make a Gantt Chart: Primary Steps

  • Break the challenge into duties — for instance: “Design → Structure → API → Checks”.
  • Determine dependencies — what can’t be began till one other is completed (e.g., assessments after improvement).
  • Estimate deadlines — realistically, with room for revisions.
  • Put folks in cost — who’s chargeable for what.
  • Visualize in a software — Jira, MS Undertaking, or Monday.com for easy tasks.
  • Replace frequently — if deadlines shift, regulate the Gantt Chart schedule instantly.

Vital: Hold it easy! For small Agile groups, a easy, uncluttered model will suffice.