نویسنده: post bot

  • Swift Apprentice: Fundamentals | Kodeco

    Swift Apprentice: Fundamentals | Kodeco


    This is a book for complete beginners to Apple’s modern programming language — Swift.

    All the code in the book works inside of Xcode’s easy-to-use playgrounds.
    That means you can focus on core Swift language concepts, such as classes, protocols,
    and generics, instead of getting bogged down in the details of building apps.

    This is a companion book to the SwiftUI Apprentice;
    the SwiftUI Apprentice focuses on building apps, while Swift Apprentice focuses
    on the Swift language itself.

    This is a book for complete beginners to Apple’s modern programming language — Swift.

    All the code in the book works inside of Xcode’s easy-to-use playgrounds. That means you can focus on core Swift language concepts, such as classes, protocols, and generics without getting bogged down by extraneous details.

    This…


    more

    This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book and more.

    The chapters in this section will introduce you to the very basics of programming in Swift. From the fundamentals of how computers work up to language structures, you’ll cover enough of the language to be able to work with data and organize your code’s behavior.

    The section begins with some groundwork to get you started.
    Once you have the basic data types in your head, it’ll be time to do things with that data, and finally, you’ll learn about an essential data type, optionals, that let you express potentially missing data.

    These fundamentals will get you Swiftly on your way, and before you know it, you’ll be ready for the more advanced topics that follow. Let’s get started!

    This is it, your whirlwind introduction to the world of programming! You’ll begin with an overview of computers and programming and then say hello to Swift playgrounds, where you’ll spend your coding time for the rest of this book.
    You’ll learn some basics, such as code comments, arithmetic operations, constants and variables. These are some of the fundamental building blocks of any language, and Swift is no different.

    You’ll learn about handling different types, including strings that allow you to represent text.
    You’ll learn about converting between types and get an introduction to type inference, which simplifies your life as a programmer.
    You’ll learn about tuple types which allow you to group values of any type together.

    You’ll learn how to make decisions and repeat tasks in your programs using syntax to control the flow.
    You’ll also learn about Booleans, which represent true and false values, and how you can use these to compare data.

    Continuing the theme of code not running in a straight line, you’ll learn about another loop known as the `for` loop. You’ll also learn about switch statements that are particularly powerful in Swift.

    Functions are the basic building blocks you use to structure your code in Swift. You’ll learn how to define functions to group your code into reusable units.

    This chapter covers optionals, a special type in Swift representing either a value or the absence of a value. By the end of this chapter, you’ll know why you need optionals and how to use them safely.

    So far, you’ve mostly seen data in the form of single elements. Although tuples can have multiple pieces of data, you have to specify the size upfront; a tuple with three strings is a completely different type from a tuple with two strings, and converting between them isn’t trivial. In this section, you’ll learn about collection types in Swift. Collections are flexible “containers” that let you store any number of values together.

    There are several collection types in Swift, but three important ones are arrays, dictionaries and sets. You’ll learn to apply custom operations and loop over collection types. Finally, you’ll revisit strings, which are collections of characters.

    All the collection types share similar interfaces but have very different use cases. As you read through these chapters, keep the differences in mind, and you’ll begin to develop a feel for which type you should use when.

    Arrays are the most common collection type you’ll run into in Swift that keep an ordered list of elements of the same type. On the other hand, Dictionaries let you look up elements efficiently using a key. Finally, Sets maintain an unordered collection of unique elements. You’ll learn all about these three types in this chapter.

    Once you have collections of items, you will want to perform operations with them.
    For example, sort them, filter them, add them up, etc. Swift gives you a powerful
    language construct, the closure, that lets you infinitely customize the behavior
    of such operations. In this chapter, you will learn about Swift’s most common
    collection algorithms and customize them with closures.

    Text processing is an essential application for any computer language, and String is Swift’s powerhouse type for text handling. Strings are bi-directional collections of Character types that balance correctness, performance and ease of use.

    Searching for patterns in text is a common task you’ll encounter in your programming travels. Swift provides a power type called Regex to perform that task. Using standard syntax, you can express complicated matching patterns to extract information from text. You can use an all-new regex builder syntax for improved compile-time support, which maximizes clarity and readability.

    You can create your own type by combining variables and functions into a new type definition. When you create a new type, you give it a name; thus, these custom types are known as named types. Structures are a powerful tool for modeling real-world concepts. You can encapsulate related concepts, properties and methods into a single, cohesive model.

    Swift includes four kinds of named types: structures, classes, enumerations and protocols. You’ll learn here how other named types use the concepts of methods and properties, how they differ, and where you want to use each.

    You’ll also learn about protocols & generics, which are types and methods that take as input other types instead of just methods, as well as custom types to build larger and complex things!

    The standard library has many useful types like Int, Double and String. However, it sadly does not include a Pizza type. Structures are types that can store named properties and define actions and behaviors. In this chapter, you will define your custom structure types and begin building a Pizza empire.

    In this chapter, you’ll learn about stored and computed properties, along with some tricks, such as how to monitor changes in a property’s value and delay the initialization of a stored property.

    Methods are merely functions that reside in a structure. You’ll look closely at how methods and initializers help you build full-featured, custom types.

    Structures let you define your own named types with custom properties and methods. In this chapter, you’ll get acquainted with classes, which are much like structures but have important differences that make them an invaluable addition to your toolbox.

    This chapter continues with class types describing how Swift supports the traditional concepts of inheritance and polymorphism. You will also learn about two-phase class initialization that you will need to build proper class hierarchies. This discussion will lay the foundation for using these concepts with Swift’s value types.

    In this chapter, you’ll learn about enumerations, a type that groups related, mutually exclusive case values. You’ll also learn about uninhabited types and finally discover what an optional is under the hood.

    Protocols are a type that can bridge common behaviors between structs,
    classes, and enums by defining an interface or template for an actual concrete type. Protocols enable polymorphism across all types and overcome the single inheritance limitation you saw with classes.

    In this chapter, you’ll learn what generics are, how to write generic code, and loop back and look at the generic types in Swift – dictionaries, arrays, and optionals – from this new perspective.



    Source link

  • A Silicon Valley Museum Weighs Tech’s Promises and Perils



    Set in the heart of Silicon Valley, the Computer History Museum long cheered the developments around it. Now, it’s taking a more nuanced approach.



    Source link

  • Data Structures & Algorithms in Swift

    Data Structures & Algorithms in Swift


    Understanding how data structures and algorithms work in code is crucial for creating efficient and scalable apps and acing job interviews. Swift’s standard library and, more recently, the Swift Collections and Algorithms packages contain a robust set of general-purpose collection types and algorithms, yet they don’t cover every case!

    In Data Structures and Algorithms in Swift, you’ll learn how to implement the most popular and useful data structures and when and why you should use one particular data structure or algorithm over another. This set of basic data structures and algorithms will serve as an excellent foundation for building more complex and special-purpose constructs. The high-level expressiveness of Swift makes it an ideal choice for learning these core concepts without sacrificing performance.

    You’ll start with the fundamental structures of linked lists, queues and stacks, and see how to implement them in a highly Swift-like way. Move on to working with various types of trees, including general purpose trees, binary trees, AVL trees, binary search trees, and tries. Go beyond bubble and insertion sort with better-performing algorithms, including mergesort, radix sort, heap sort, and quicksort. Learn how to construct directed, non-directed and weighted graphs to represent many real-world models. Traverse those graphs and trees efficiently with breadth-first, depth-first, Dijkstra’s and Prim’s algorithms to solve problems such as finding the shortest path or lowest cost in a network.

    By the end of this book, you’ll have hands-on experience solving common issues with data structures and algorithms — and you’ll be well on your way to developing your own efficient and useful implementations!



    Source link

  • Alchemer Positioned in the Challengers Quadrant of the Magic Quadrant™ for Voice of the Customer

    Alchemer Positioned in the Challengers Quadrant of the Magic Quadrant™ for Voice of the Customer


    This is the fourth consecutive time the VoC vendor has been included in the Magic Quadrant

    LOUISVILLE, COLO., April 22, 2025 — Alchemer, a global leader in customer experience and feedback technology, today announced that it has been positioned by Gartner® in the Challengers quadrant of the Magic Quadrant for Voice of the Customer Platforms.1

    “In our opinion, Alchemer’s position in the Challenger quadrant by Gartner reflects our dedication to empowering our customers to do more with feedback whether that’s a one-time survey, in-app feedback, or a robust CX program,” said Marty Mrugal, CEO of Alchemer. “We believe inclusion in the fourth consecutive report reflects our commitment to ongoing innovation and customer-centric product development, which has included a focus on omnichannel collection, integrations with more than 400 business system, and investments in AI.”

    The evaluation was based on specific criteria that analyzed the company’s overall completeness of vision and ability to execute. Per the report, “Organizations use VoC platforms to manage the customer experience through a deep understanding of customer needs and perceptions. This research helps identify vendors whose VoC platforms are best equipped to help them achieve their CX and business objectives.”

    A complimentary copy of the Magic Quadrant for Voice of the Customer Platforms, which includes the Gartner analysis of the VoC and customer experience landscape as well as Alchemer’s strengths and cautions, is available on Alchemer’s website: https://www.alchemer.com/l/gartner-magic-quadrant-2025/.

    Magic Quadrant™ reports are a culmination of rigorous, fact-based research in specific markets, providing a wide-angle view of the relative positions of the providers in markets where growth is high and provider differentiation is distinct. Providers are positioned into four quadrants: Leaders, Challengers, Visionaries, and Niche Players. The research enables you to get the most from market analysis in alignment with your unique business and technology needs.

    [1] Gartner, “Magic Quadrant for Voice of the Customer Platforms,” Deborah Alvord, Maria Marino, 16 April 2025.

    Gartner Disclaimer:

    GARTNER is a registered trademark and service mark of Gartner, Inc. and/or its affiliates in the U.S. and internationally, and MAGIC QUADRANT is a registered trademark of Gartner, Inc. and/or its affiliates and are used herein with permission. All rights reserved.

    Gartner does not endorse any vendor, product, or service depicted in our research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner’s research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.



    Source link

  • Discover the best way to learn modern Android development

    Discover the best way to learn modern Android development


    Android development has undergone some considerable changes. Ten years ago, creating an app meant learning Java and building a user interface using a clunky visual interface building tool. XML was everywhere. In short, Android development was a rough development experience.

    Times have certainly changed. Google acknowledged the problem and in response, they released the Android Jetpack framework. This framework leveraged the then new Kotlin language while addressing some of the pain points in creating apps. This modernized Android development, but more importantly, it made it fun!

    Unfortunately, a lot of online learning materials are dated from five to ten years ago. This is not true for Kodeco. Last year Kodeco made significant investments to update our entire Android library. This means you’ll be able to learn Android using the latest techniques and libraries.

    Bootcamp learning

    We’re really keen to offer these top-quality materials as part of a bootcamp experience that is as accessible to as many people as possible. The goal of this bootcamp is to train you to become a junior Android developer with a few demo apps under your belt.

    Here’s a week by week breakdown of our upcoming bootcamp:

    Weeks 1-2: Getting Started

    In your first two weeks, you’ll learn the basics of version control. You’ll find your way around Android Studio, and you’ll write your very first Android app. It’s hard to believe in just two weeks, you’ll have an app ready to go, but you are just getting started.

    Weeks 3-5: Learning the Kotlin Language

    This introduction to Kotlin will start you off by writing simple commands and will gradually increase in complexity until you are defining your own objects. This is all done using Kotlin Playground; an online Kotlin scratch pad that allows you to experiment, make mistakes, and have fun.

    Weeks 6-7: Understanding Android Apps

    You’ll learn about all the various resource files and discover the purpose of the Gradle build system. You’ll also meet the unit types used through Android. You’ll conclude week seven with a deep dive in Jetpack Compose.

    Weeks 8-10: Multitasking in your App

    In these weeks, you’ll learn to leverage multitasking with coroutines. You’ll learn how to use coroutines to make networking requests and parse JSON files. You’ll also learn to leverage concurrency by way of Kotlin Flow, a reactive programming library.

    Weeks 11-13: Adding More Screens

    Here, you’ll learn how to create stateful user interfaces with Jetpack Compose as well as add multiple screens to your app. You’ll also learn how to read and write data.

    Weeks 14-15: Capstone Development & Graduation

    These final two weeks culminate with the presentation of your capstone project to the rest of the cohort. After which, enjoy your final lesson and graduation ceremony.

    Your final step is getting a junior Android developer position, or selling your own apps.

    Please let us know!

    To make sure that we can offer this bootcamp to as many interested people as possible, we need your help. If you are interested in attending this bootcamp, please take the following survey. We are looking for a date / time that works the best for everyone involved.

    That said, if you have any questions or would like to speak with us in detail about the upcoming bootcamp, please reach out to support@kodeco.com.

    This is an exciting opportunity for new or already existing developers. We want to be the bridge between who you are now to the Android developer you’ll be tomorrow.



    Source link

  • Details Hegseth Shared on Signal Came From a Secure Site



    Information about U.S. strikes in Yemen that the defense secretary put in two group chats came from Central Command, according to two people familiar with the chats.



    Source link

  • Some Pixel 9 owners are convinced video quality just got worse

    Some Pixel 9 owners are convinced video quality just got worse


    Someone holding the Google Pixel 9 Pro outside.

    Joe Maring / Android Authority

    TL;DR

    • Owners of Pixel 9 family phones report stuttering and tearing video recorded from their cameras.
    • The issues seem to manifest when recording while zoomed in.
    • It’s possible a recent software update may be responsible

    Across the world of smartphones, the landscape is always evolving. Every day we see the arrival of new updates, apps, and firmware patches that change the mobile experience for users in myriad ways — both desired and not. And while some of those changes are quite conspicuous, others are much more difficult to characterize, and we’re left wondering if something’s truly different, or if we’re just imagining things. Right now, we find ourselves in just such that kind of situation, asking if Pixel 9 video recording quality is getting worse, or if we’re just hallucinating.

    While browsing Reddit’s GooglePixel sub the other day, we spotted a post from user oowwweee that caught our our eye, complaining about worse-than-expected video quality when filming on a Pixel 9 Pro XL past 3x zoom. Even though they were a pretty new owner of the phone, they noted that they only first observed the problem after installing the latest updates.

    We might write that off as new-user unfamiliarity, but a number of other owners of Pixel 9-series phones chimed in with their own complaints, and it’s hard to ignore all the details aligning. We seem to be looking at some kind of temporal issue, with stuttering frames or images tearing. It only appears to manifest at intermediate zoom levels, and users report first noticing it after installing recent updates.

    Compared to some of the other ways video quality could be impacted, not everyone’s going to necessarily notice or even really be bothered by something like this. That almost makes us even more curious: Is this an actual problem? Let’s hear from you:

    Has your Pixel 9 gotten worse at recording video recently?

    0 votes

    More than just knowing whether or not you’re dissatisfied with zoomed video quality on your phone, we want to know exactly which Pixel model you’re experiencing this with. We’ve seen reports mentioning both the 9 Pro and 9 Pro XL, but we’re curious if this is impacting any other handsets, too.

    After responding to our poll, scroll down and let us know in the comments which Pixel model you’re testing with, as well as when you first noticed a problem. Hopefully that will give us a little more data towards working out exactly what might be going on here.

    Got a tip? Talk to us! Email our staff at news@androidauthority.com. You can stay anonymous or get credit for the info, it’s your choice.



    Source link

  • One of the Best Puzzlers of 2025, The Art of Fauna, Receives Great Update for Earth Day

    One of the Best Puzzlers of 2025, The Art of Fauna, Receives Great Update for Earth Day


    It’s all about nature and is both simplistic and beautiful.

    Each puzzle is made from stunning wildlife illustrations from the 18th and 19th century by artists like John James Audubon and John Gould. Along with the picture, there is a detailed description about the animal.

    There are two ways to put together each puzzle, the image or text for even a bigger challenge.

    And for Earth Day, the puzzler has just gotten a great new update. There is a new puzzle pack—Echoes of Extinction. The pack features animals like the passenger pigeon, quagga, and dodo. All 10 of the animals were alive when their illustrations were made, but have since gone extinct.

    The update also brings new app icons.

    The Art of Fauna is for the iPhone and all iPad models. You can download the free app now and play the first 10 puzzles. Unlock more than 100 puzzles in the game for an in-app purchase of $7.99.

    Optionally, you can also unlock each of the five biomes for a separate $2.99 in-app purchase.

    A portion of every purchase will be given back to support elected wildlife conservation organizations.



    Source link

  • Airbnb to Show Full Pricing With Cleaning, Added Fees

    Airbnb to Show Full Pricing With Cleaning, Added Fees


    The Federal Trade Commission’s (FTC) “junk fees” ruling, which was passed in December 2024, goes into effect on May 12. The new law requires businesses selling tickets and short-term lodging to “clearly” show all fees (like service and cleaning fees) at the time of purchase.

    On Monday, Airbnb announced in a statement that it is getting started early.

    All Airbnb guests globally will now automatically see the complete cost of their proposed stay, including all fees (before taxes), when looking at search result listings.

    Related: ‘I Can’t Get Everyone to Move Here’: Why Airbnb’s CEO Is Sticking With a Once-a-Month Hybrid Schedule

    “With the global rollout of total price display, we’re making it easier for guests to better understand the price they’ll pay, and for hosts to succeed in a more transparent marketplace,” the company said. “We believe these improvements will continue to create positive guest experiences from search to stay while also supporting the growth of the Airbnb community around the world.”

    Parts of Europe, Canada, Korea, and Australia have already had total pricing transparency since 2019, following those countries’ individual regulations.

    The total price feature has been optional in the U.S. for two years, Airbnb notes, and 17 million guests have opted to use the feature. Meanwhile, the option for full price disclosure actually helped lower cleaning fees imposed by hosts.

    In its Q4-2023 and full-year financial results, Airbnb noted that after enabling the feature, nearly 300,000 listings removed or lowered cleaning fees, while 40% of active listings eliminated it completely.

    “Guests everywhere will now see the total cost of their reservation, including all fees before taxes,” the statement reads. “We know that clear, upfront pricing improves the Airbnb experience for both guests and hosts.”

    Related: Airbnb’s New ‘Icons’ Cost Less Than $100 Per Night, Including the House from ‘Up’ and Prince’s ‘Purple Rain’



    Source link

  • The Story of Kodeco (raywenderlich.com)—A Journey of Passion, Learning, and Community

    The Story of Kodeco (raywenderlich.com)—A Journey of Passion, Learning, and Community


    Fifteen years ago, I was an indie iOS developer, creating my own simple apps like these:

    It was a fun and exciting time, but there was one big challenge—iOS was still brand new, and good documentation was hard to come by. Learning the platform often felt like piecing together a puzzle without all the pieces, and more often than not, I found myself feeling stuck and, frankly, a little stupid.

    To make things easier—not just for myself, but for others facing the same struggles—I decided to start a blog to document what I was learning. And with that, raywenderlich.com was born!

    The Humble Beginnings: A Blog and a Small Team

    When I first started the blog, I made myself a deal: I would write one tutorial a week. The plan was simple—spend one day each week writing tutorials and use the rest of my time working on my own apps.

    That worked for a while, until I started polling my readers about which topics they wanted me to cover next. More often than not, they’d choose subjects I hadn’t yet explored for my apps. This meant extra research on my part, and soon I found myself spending more than my allocated day each week writing tutorials. It was beginning to take a toll on the time I needed for my own projects.

    raywenderlich.com Team - 2010

    I realized I needed help. So, I put out a call for authors to join me, and I was lucky to have some amazing people respond.

    Together, we began crafting tutorials using this simple, yet effective process:

    • My wife, Vicki, would create any necessary graphics and artwork for the sample projects.
    • Each author would write a first draft.
    • My friend Fahim Farook would tech-edit each tutorial.
    • My friend BC Phillips would do an English-language edit for each tutorial.
    • I would do a final edit and review to ensure everything was polished.

    By collaborating this way, we were able to produce a ton of high quality tutorials. As our team grew, we added more tech editors, editors, and artists, and by the end of 2014, we looked like this:

    Are you already on the map?

    The Power of Community: From Online Friends to a Real Family

    We all shared a deep passion for making apps and teaching others how to do the same. As we collaborated and spent time together, we became more than just colleagues—we became friends. And along the way, we had a ton of fun.

    I’ll always remember our daily hangouts on IRC, where we’d make memes and laugh together. One of our favorite activities was slapping Charlie with a trout:

    Then there was Tammy, who always led the way with creativity and humor:

    We loved pulling off April Fools’ pranks too. One year, we “discovered” an undocumented thermometer inside the iPhone and released a Thermometer App Starter Kit to measure your turkey’s temperature (among other things). To our surprise, a lot of people tried to buy it. :]

    Never overcook your turkey again!

    Each Christmas, we’d all come together to create a cheesy Christmas song with geeky iOS-related lyrics. They were always a bit amateurish, but always so much fun. One of my favorites even featured the infamous “Mic Dance.”

    https://www.youtube.com/watch?v=0koXSaOb0Dc

    For us, it was never just about creating great tutorials—it was about making memories and having fun with a group of friends.

    Breakthrough Moments and Big Changes

    While we were having fun, we were also building a business. Along the way, there were three key turning points that really shaped the journey.

    The first turning point came when I decided to shift all my focus to raywenderlich.com, leaving my own app development behind. This decision was sparked by our first book, iOS 5 by Tutorials, which ended up earning over $150K—far beyond any of our expectations. It was a huge success, and we realized we needed to create more books for the community.

    Another major turning point came in 2014 with the release of Swift. I remember sitting in the audience at WWDC, feeling a sense of panic: “Oh no! Our entire blog and all of our books are in Objective-C, and now they’re obsolete. What will we do?! Rewriting everything seems impossible.”

    But then I took a deep breath, steadied myself, and thought, “No, we can do this—and it will be fun!” We fully embraced Swift, updating all our books and tutorials to reflect the new language. My cousin, Ry Bristow, even made this music video to capture how we were feeling at the time:

    The final turning point was when we switched from individual book sales to a subscription model, offering video courses and online books. This change provided a much steadier and more reliable income stream, enabling us to grow and expand our content. We were able to dive into new topics like Android, Flutter, Unity, and more, creating a wider range of resources for the community.

    RWDevCon: Bringing the Community Together in Person

    One of the things I’m most proud of during this time was organizing RWDevCon: a live, in-person conference focused on interactive, hands-on tutorials.

    It all began with a suggestion from a few team members that we should run our own conference. I agreed, not really knowing what I was getting myself into!

    I still remember how nervous I was before the first RWDevCon. Vicki and I took the stage to give some opening remarks. As soon as we said, “Welcome to RWDevCon!” the crowd erupted into applause and cheers. We weren’t expecting that level of enthusiasm—what felt like an outpouring of love and appreciation. We looked at each other, smiled, and suddenly felt our anxiety fade away. We knew right then the conference was going to be a success.

    Putting on the conference was a tremendous amount of work for the entire team (I’ll always be grateful to everyone who participated and put up with me!). But despite the challenges, Vicki and I couldn’t have been happier with how everything turned out. It was such a joy seeing everyone having fun and engaging with the events. Those are days I’ll always cherish.



    Source link