<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Gerard Konopielko Blog</title>
        <link>https://konopielko.com/blog</link>
        <description>Gerard Konopielko Blog</description>
        <lastBuildDate>Thu, 09 Jan 2025 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[DailyUI Challenge]]></title>
            <link>https://konopielko.com/blog/dailyui</link>
            <guid>https://konopielko.com/blog/dailyui</guid>
            <pubDate>Thu, 09 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[const whiteIconIDs = [3, 11, 13, 14];]]></description>
            <content:encoded><![CDATA[<div class="pswp-gallery" id="dailyui-gallery"><a href="https://konopielko.com/img/dailyui/16.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/16.png" alt="UI Challenge 1"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/15.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/15.png" alt="UI Challenge 2"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/14.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/14.png" alt="UI Challenge 3"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(256, 256, 256, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/13.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/13.png" alt="UI Challenge 4"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(256, 256, 256, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/12.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/12.png" alt="UI Challenge 5"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/11.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/11.png" alt="UI Challenge 6"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(256, 256, 256, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/10.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/10.png" alt="UI Challenge 7"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/9.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/9.png" alt="UI Challenge 8"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/8.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/8.png" alt="UI Challenge 9"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/7.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/7.png" alt="UI Challenge 10"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/6.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/6.png" alt="UI Challenge 11"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/5.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/5.png" alt="UI Challenge 12"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/4.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/4.png" alt="UI Challenge 13"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/3.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/3.png" alt="UI Challenge 14"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(256, 256, 256, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/2.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/2.png" alt="UI Challenge 15"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a><a href="https://konopielko.com/img/dailyui/1.png" data-pswp-width="1080" data-pswp-height="1080" target="_blank" rel="noreferrer" style="position:relative;display:inline-block"><img src="https://konopielko.com/img/dailyui/1.png" alt="UI Challenge 16"><span class="fullscreen-icon" style="position:absolute;top:5px;right:5px;padding:5px;width:24px;height:24px;border-radius:50%;background:rgba(0, 0, 0, 0.1);backdrop-filter:saturate(180%) blur(20px);cursor:pointer;color:black"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:block"><g fill="none"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path><path fill="currentColor" d="M9.793 12.793a1 1 0 0 1 1.497 1.32l-.083.094L6.414 19H9a1 1 0 0 1 .117 1.993L9 21H4a1 1 0 0 1-.993-.883L3 20v-5a1 1 0 0 1 1.993-.117L5 15v2.586zM20 3a1 1 0 0 1 .993.883L21 4v5a1 1 0 0 1-1.993.117L19 9V6.414l-4.793 4.793a1 1 0 0 1-1.497-1.32l.083-.094L17.586 5H15a1 1 0 0 1-.117-1.993L15 3z"></path></g></svg></span></a></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Pitaya - Case Study]]></title>
            <link>https://konopielko.com/blog/pitaya</link>
            <guid>https://konopielko.com/blog/pitaya</guid>
            <pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Pitaya]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Pitaya" src="https://konopielko.com/assets/images/summary-628f66a4077c781afae7f188cb2eed02.png" width="1920" height="1080" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="problem">Problem<a class="hash-link" aria-label="Direct link to Problem" title="Direct link to Problem" href="https://konopielko.com/blog/pitaya#problem">​</a></h2>
<p><strong>Avoidant/Restrictive Food Intake Disorder (ARFID)</strong> is a lesser-known eating disorder not tied to body image or weight concerns but driven by sensory sensitivities such as smell, texture, or taste. Individuals with ARFID often restrict their diet to a narrow range of foods, excluding entire food groups. This can lead to challenges with social eating, nutritional deficiencies, and broader health impacts.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="context">Context<a class="hash-link" aria-label="Direct link to Context" title="Direct link to Context" href="https://konopielko.com/blog/pitaya#context">​</a></h2>
<p><strong>I was single-handedly responsible for the concept, research, design, development, and marketing.</strong></p>
<p>During the ideation phase I participated in University of Warsaw Incubator workshops and <strong>won 1st place</strong> in a grant competition.</p>
<p><img decoding="async" loading="lazy" alt="Photo from Brave Camp by University of Warsaw Incubator" src="https://konopielko.com/assets/images/iuw-4eee3612624effbfb9868c89742daedd.jpeg" width="1280" height="914" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="desk-research">Desk Research<a class="hash-link" aria-label="Direct link to Desk Research" title="Direct link to Desk Research" href="https://konopielko.com/blog/pitaya#desk-research">​</a></h2>
<p>Studies suggest that low intensity psychological interventions, such as mobile apps, can successfully help with eating disorder symptoms (<a href="https://doi.org/10.1186/s40337-023-00775-2" target="_blank" rel="noopener noreferrer">Davey et al., 2023</a>), and while there are many apps offering help for eating disorders, <strong>very few apps cater to subtypes of eating disorders</strong>. (<a href="https://doi.org/10.1002/eat.23690" target="_blank" rel="noopener noreferrer">O’Leary &amp; Torous, 2022</a>).</p>
<p>Two apps tried to specifically support individuals with ARFID:</p>
<ul>
<li><a href="https://apptopia.com/ios/app/1401504112/about" target="_blank" rel="noopener noreferrer">Fudo</a> allowed users to rate food categories on a 5 star scale. The app is no longer available to download and there is not much information available about it online.</li>
<li><a href="https://apps.apple.com/gb/app/happy-foods/id1471340611" target="_blank" rel="noopener noreferrer">Happy Foods</a> allows the user to take pictures of the food they tried this day and rate it using a smiley face scale.</li>
</ul>
<p>One study tested a app prototype meant to support children with food neophobia by setting food trying goals (<a href="https://doi.org/10.1111/jhn.13365" target="_blank" rel="noopener noreferrer">Slater et al., 2024</a>). The prototype did not meet the expectations and but the outcome was that that it sparked discussion about food. In the study parents said that they would like to see a page for each food item with descriptions, as well as the ability to set multiple goals at the same time.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="survey">Survey<a class="hash-link" aria-label="Direct link to Survey" title="Direct link to Survey" href="https://konopielko.com/blog/pitaya#survey">​</a></h2>
<p>I decided to create a survey, which reached <strong>37 people with ARFID.</strong> I learned that 78% created a food preference list at some point, <strong>97% are interested in using a food list app</strong>, 66% are willing to pay for an ARFID related app and 55% are iOS users. I also learned about the features they would like to see in such app, as well as their concerns.</p>
<!-- -->
<!-- -->
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="persona">Persona<a class="hash-link" aria-label="Direct link to Persona" title="Direct link to Persona" href="https://konopielko.com/blog/pitaya#persona">​</a></h2>
<div style="background-color:#FFECEC;border-radius:16px;padding:1em;margin-bottom:1em;display:flex;gap:16px;align-items:stretch"><img src="https://konopielko.com/img/pitaya_persona.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;height:100%;width:30%;object-fit:cover" class="mobile-none"><div style="flex:1"><span style="font-size:1.25rem;font-weight:bold">Emily</span><div style="font-size:0.8rem;line-height:1.1;margin-top:8px">Emily is a high school junior who enjoys art, reading fantasy novels, and listening to indie music. She struggles with anxiety around food, as certain textures, smells, and appearances trigger strong aversions. Eating in social situations is especially challenging because peers sometimes make fun of her pickiness, which adds to her anxiety. Her family is supportive but worries about her nutrition.</div><div style="display:flex;gap:16px;flex-wrap:wrap" class="mobile-column"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Goals</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Expand her safe foods list</li><li>Build a healthier, more confident relationship with food</li></ul></div><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Pain Points</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Anxiety and fear of judgment around her food preferences</li><li>Concerns about privacy</li></ul></div></div><div style="display:flex;gap:16px;flex-wrap:wrap"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Needs</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Ability to journal her relationship with different foods</li><li>Reliable way to learn about food she has not tried</li><li>Suggestions of food she might like</li></ul></div></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="solution">Solution<a class="hash-link" aria-label="Direct link to Solution" title="Direct link to Solution" href="https://konopielko.com/blog/pitaya#solution">​</a></h2>
<p><strong>Pitaya</strong> provides a structured way to create and manage personalized food lists, helping to reduce food-related stress. While this approach is commonly used in ARFID therapy, there are currently no dedicated digital tools to support it.</p>
<!-- -->
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="early-mockups">Early Mockups<a class="hash-link" aria-label="Direct link to Early Mockups" title="Direct link to Early Mockups" href="https://konopielko.com/blog/pitaya#early-mockups">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Screenshot 1" src="https://konopielko.com/assets/images/screenshot1-58ae2527bf889eb1a20f5991d4c966cf.jpg" width="1800" height="880" class="img_ev3q">
<img decoding="async" loading="lazy" alt="Screenshot 2" src="https://konopielko.com/assets/images/screenshot2-ccd554f906009addff7e3b4e61016678.jpg" width="1800" height="880" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="usability-testing">Usability testing<a class="hash-link" aria-label="Direct link to Usability testing" title="Direct link to Usability testing" href="https://konopielko.com/blog/pitaya#usability-testing">​</a></h2>
<p>I conducted <strong>5 Individual In-Depth Interviews (IDI)</strong>, and tested the prototype with <strong>20 users</strong>. This led to several changes, including:</p>
<ul>
<li>Adding a <strong>goal-setting feature</strong> to encourage trying food multiple times, using a stamp card approach.</li>
<li>Enabling <strong>instant database updates</strong> via GPT-4 to prevent user disinterest caused by delays.</li>
<li>Allowing users to create <strong>variants</strong> of products to further specify their preferences.</li>
<li>Adding a <strong>share feature</strong> to easily share preferences with friends.</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Prototype" src="https://konopielko.com/assets/images/proto-edffc2eaf45ea5ccbcddb3a280034cee.png" width="1390" height="1740" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="implementation">Implementation<a class="hash-link" aria-label="Direct link to Implementation" title="Direct link to Implementation" href="https://konopielko.com/blog/pitaya#implementation">​</a></h2>
<p>I developed the app using <strong>Swift</strong> and <strong>SwiftUI</strong> for iOS, and transcoded it using Skip.tools framework into <strong>Kotlin</strong> and <strong>Jetpack Compose</strong> for Android. For the backend I used <strong>Node.js</strong>, <strong>Google App Scripts</strong>, <strong>GPT-4 API</strong>, and <strong>Unsplash API</strong>.</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 3" src="https://konopielko.com/assets/images/screenshot3-60d9a78903c22bc0537684b881c4f813.jpg" width="5206" height="2642" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="results">Results<a class="hash-link" aria-label="Direct link to Results" title="Direct link to Results" href="https://konopielko.com/blog/pitaya#results">​</a></h2>
<div class="statistic-cards-container"><div style="flex:1;text-align:center;padding:16px;border-radius:16px;background-color:var(--ifm-color-neutral-100);display:flex;flex-direction:column;justify-content:center"><h2 style="margin:0">4.9 / 5</h2><p style="margin:0">Average rating</p></div><div style="flex:1;text-align:center;padding:16px;border-radius:16px;background-color:var(--ifm-color-neutral-100);display:flex;flex-direction:column;justify-content:center"><h2 style="margin:0">100+</h2><p style="margin:0">App Store reviews</p></div><div style="flex:1;text-align:center;padding:16px;border-radius:16px;background-color:var(--ifm-color-neutral-100);display:flex;flex-direction:column;justify-content:center"><h2 style="margin:0">5 000+</h2><p style="margin:0">Downloads</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="testimonials">Testimonials<a class="hash-link" aria-label="Direct link to Testimonials" title="Direct link to Testimonials" href="https://konopielko.com/blog/pitaya#testimonials">​</a></h2>
<div style="display:flex;flex-direction:column;align-items:left;gap:2px;background-color:var(--ifm-color-neutral-100);border-radius:16px;padding:1em;margin-bottom:1em"><div style="display:flex;align-items:center;gap:6px"><img src="https://konopielko.com/img/pitaya/testimonials/samante81.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;width:28px;height:28px"><span style="font-size:0.875rem">u/samante81</span></div><div class="nopadding">Thank you so much! My son and I had a great time going
through the food list and I even discovered there were foods that he liked that
I didn’t know about! Big thumbs up from my 12 year old!</div></div>
<div style="display:flex;flex-direction:column;align-items:left;gap:2px;background-color:var(--ifm-color-neutral-100);border-radius:16px;padding:1em;margin-bottom:1em"><div style="display:flex;align-items:center;gap:6px"><img src="https://konopielko.com/img/pitaya/testimonials/laurenj2210.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;width:28px;height:28px"><span style="font-size:0.875rem">u/laurenj2210</span></div><div class="nopadding">Love this app, especially how it describes food it means I know what to expect when I try it.</div></div>
<div style="display:flex;flex-direction:column;align-items:left;gap:2px;background-color:var(--ifm-color-neutral-100);border-radius:16px;padding:1em;margin-bottom:1em"><div style="display:flex;align-items:center;gap:6px"><img src="https://konopielko.com/img/pitaya/testimonials/weirdsituati0n.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;width:28px;height:28px"><span style="font-size:0.875rem">u/weirdsituati0n</span></div><div class="nopadding">This is rad. I’ve been trying to figure out what to focus on next with my
dietician and this is a perfect tool to help me explore more foods in between
our sessions! Thank youuuu 🙂</div></div>
<div style="display:flex;flex-direction:column;align-items:left;gap:2px;background-color:var(--ifm-color-neutral-100);border-radius:16px;padding:1em;margin-bottom:1em"><div style="display:flex;align-items:center;gap:6px"><img src="https://konopielko.com/img/pitaya/testimonials/kush_faerie.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;width:28px;height:28px"><span style="font-size:0.875rem">u/kush_faerie</span></div><div class="nopadding">oh i’m gonna cry. thank you for making this ❤️😭</div></div>
<div style="display:flex;flex-direction:column;align-items:left;gap:2px;background-color:var(--ifm-color-neutral-100);border-radius:16px;padding:1em;margin-bottom:1em"><div style="display:flex;align-items:center;gap:6px"><img src="https://konopielko.com/img/pitaya/testimonials/SuperNarwhal36-5.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;width:28px;height:28px"><span style="font-size:0.875rem">u/SuperNarwhal36-5</span></div><div class="nopadding">Can attest, this app is amazing!</div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="lessons-learned">Lessons Learned<a class="hash-link" aria-label="Direct link to Lessons Learned" title="Direct link to Lessons Learned" href="https://konopielko.com/blog/pitaya#lessons-learned">​</a></h2>
<ul>
<li><strong>Momentum is Key</strong>: Delays can reduce engagement significantly.</li>
<li><strong>Set Clear Deadlines</strong>: Accountability is essential for solo projects.</li>
<li><strong>Prefer Direct Calls</strong>: They provide better feedback than written communication.</li>
<li><strong>Plan Outreach Early</strong>: Define channels and core values from the beginning.</li>
<li><strong>Keep Moving Forward</strong>: Progress is crucial, even when facing setbacks.</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="download">Download<a class="hash-link" aria-label="Direct link to Download" title="Direct link to Download" href="https://konopielko.com/blog/pitaya#download">​</a></h2>
<div class="flex flex-row" style="gap:8px"><a href="https://apps.apple.com/us/app/arfid-picky-eaters-pitaya/id6448952961?platform=iphone" target="_blank"><img src="https://konopielko.com/img/AppStoreDownload.svg" alt="App Store" width="144" style="border-radius:0"></a><a href="https://play.google.com/store/apps/details?id=konopielko.pitaya" target="_blank"><img src="https://konopielko.com/img/GooglePlay.svg" alt="Google Play" width="162" style="border-radius:0"></a></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Riichi Tracker - Case Study]]></title>
            <link>https://konopielko.com/blog/riichi</link>
            <guid>https://konopielko.com/blog/riichi</guid>
            <pubDate>Tue, 01 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Riichi Tracker]]></description>
            <content:encoded><![CDATA[<p><img decoding="async" loading="lazy" alt="Riichi Tracker" src="https://konopielko.com/assets/images/cover-afdb779850e0ee94dd946e2a55f0a6e9.jpg" width="1920" height="1080" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="problem">Problem<a class="hash-link" aria-label="Direct link to Problem" title="Direct link to Problem" href="https://konopielko.com/blog/riichi#problem">​</a></h2>
<p>Riichi Mahjong, a popular variation of Mahjong, involves complex rules and intricate point counting, making the game challenging to keep scores and learn rules, especially for new players.</p>
<p><img decoding="async" loading="lazy" alt="Mahjong Game" src="https://konopielko.com/assets/images/Mahjong_game-e0f8f4c16f686f38a644065741908edc.jpg" width="800" height="531" class="img_ev3q"></p>
<p><em>Mahjong Game, source: <a href="https://zh.wikipedia.org/wiki/File:Mahjong_game.jpg" target="_blank" rel="noopener noreferrer">Wikimedia</a></em></p>
<p><img decoding="async" loading="lazy" alt="Mahjong Riichi Scoring Table" src="https://konopielko.com/assets/images/hquum85z5if71-68dc6d770c9eba2052e09efb60b74e41.png" width="1024" height="768" class="img_ev3q"></p>
<p><em>Compact Mahjong Riichi Scoring Table, source: <a href="https://www.reddit.com/r/Mahjong/comments/oydgrb/couldnt_find_a_good_comprehensive_compact_riichi/" target="_blank" rel="noopener noreferrer">Reddit</a></em></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="research">Research<a class="hash-link" aria-label="Direct link to Research" title="Direct link to Research" href="https://konopielko.com/blog/riichi#research">​</a></h2>
<p>As part of a separate project, focusing on mahjong rules, my team conducted <strong>15 interviews</strong> (30 minutes each) to explore:</p>
<ul>
<li>Preferences in tabletop games</li>
<li>Gameplay contexts and rule-learning habits</li>
<li>Familiarity with Mahjong and Poker</li>
</ul>
<p>We then compared various rule learning methods we found online and through interviews. We analyzed 15 different tabletop game manuals (including 7 Mahjong manuals) and created a draft of a Mahjong manual.</p>
<p>We then tested this draft with <strong>8 participants</strong> in sessions lasting between 1 and 1.5 hours, gathering 110 actionable feedback tickets, iterating between interviews. This research guided the creation of a full-featured Riichi manual in Polish and was the basis for this project.</p>
<p><img decoding="async" loading="lazy" alt="Low-fidelity Prototype" src="https://konopielko.com/assets/images/lofi-0847daad8075028c9d1df76b4c4a7f15.jpeg" width="1280" height="960" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="competition">Competition<a class="hash-link" aria-label="Direct link to Competition" title="Direct link to Competition" href="https://konopielko.com/blog/riichi#competition">​</a></h2>
<p>As part of the design process for Riichi Tracker, I analyzed existing solutions. One popular tool among Mahjong players outside of Japan is an Android application named <em>Mahjong Tracker</em> (<a href="https://play.google.com/store/apps/details?id=com.mahjongtracker.androidapp" target="_blank" rel="noopener noreferrer">Google Play</a>). It's an Android-only app used for game tracking and is noted for its use in many European Mahjong Association tournaments.</p>
<p>Studying this application's user flow helped identify potential areas where Riichi Tracker could aim to offer a distinct user experience.</p>
<p><img decoding="async" loading="lazy" alt="Mahjong Tracker app screenshot" src="https://konopielko.com/assets/images/mahjongtrackerphoto-728d1c287f256ca86a410806e1dcc85f.png" width="832" height="406" class="img_ev3q"><br>
<em>The Mahjong Tracker app, source: <a href="https://play.google.com/store/apps/details?id=com.mahjongtracker.androidapp" target="_blank" rel="noopener noreferrer">Google Play</a></em></p>
<p>To understand common usability patterns and potential user pain points, I conducted a <strong>Heuristic Evaluation</strong> of the <em>Mahjong Tracker</em> app, applying Jakob Nielsen's 10 Usability Heuristics. This analysis provided insights that informed the design goals for Riichi Tracker. Key observations from this evaluation included opportunities to enhance user experience in areas such as:</p>
<ul>
<li><strong>Visibility of system status:</strong> Some buttons are not clearly marked, making interactions less obvious.</li>
<li><strong>User control and freedom:</strong> The absence of undo options forces players to restart the round input after an error.</li>
<li><strong>Error prevention:</strong> A multi-step input process increases the likelihood of mistakes.</li>
<li><strong>Efficiency:</strong> Lack of shortcuts makes the round input cumbersome for experienced users.</li>
</ul>
<p>To confirm these observations, I spoke with players from one of the <strong>local Warsaw Mahjong Leagues</strong> and participated in a live gameplay session with them using the <em>Mahjong Tracker</em> application. I also spoke with experienced players from around the world in VRChat.</p>
<p><img decoding="async" loading="lazy" alt="Mahjong in VRChat" src="https://konopielko.com/assets/images/vrchat-bf428bf7533084619a7afb614dba79e0.jpeg" width="1125" height="633" class="img_ev3q">
<em>Riichi Mahjong in VRChat</em></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="personas">Personas<a class="hash-link" aria-label="Direct link to Personas" title="Direct link to Personas" href="https://konopielko.com/blog/riichi#personas">​</a></h2>
<div style="background-color:#FFF9E0;border-radius:16px;padding:1em;margin-bottom:1em;display:flex;gap:16px;align-items:stretch"><img src="https://konopielko.com/img/riichi_persona1.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;height:100%;width:30%;object-fit:cover" class="mobile-none"><div style="flex:1"><span style="font-size:1.25rem;font-weight:bold">Basia</span><div style="font-size:0.8rem;line-height:1.1;margin-top:8px">Basia is an advanced Riichi Mahjong player and a busy student at Jagiellonian University. She competes in local tournaments and is keen to streamline scorekeeping to focus on strategy.</div><div style="display:flex;gap:16px;flex-wrap:wrap" class="mobile-column"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Goals</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Refine advanced tile efficiency and discard strategies</li><li>Quickly track scores during tournaments</li></ul></div><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Pain Points</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Limited time between rounds</li><li>Cumbersome input processes that interrupt gameplay</li></ul></div></div><div style="display:flex;gap:16px;flex-wrap:wrap"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Needs</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>A competitive tool optimized for speed</li><li>Integrated analysis tools with minimal input steps</li></ul></div></div></div></div>
<div style="background-color:#E0E9FF;border-radius:16px;padding:1em;margin-bottom:1em;display:flex;gap:16px;align-items:stretch"><div style="flex:1"><span style="font-size:1.25rem;font-weight:bold">Adam</span><div style="font-size:0.8rem;line-height:1.1;margin-top:8px">Adam is new to Riichi Mahjong. He is learning the basics and seeks an intuitive tool that helps him reliably track scores while learning game nuances.</div><div style="display:flex;gap:16px;flex-wrap:wrap" class="mobile-column"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Goals</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Master basic scoring rules</li><li>Be able to easily intuitively input hand scores</li></ul></div><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Pain Points</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Difficulty remembering the rules</li><li>Frustration with complex input methods that require additional learning</li></ul></div></div><div style="display:flex;gap:16px;flex-wrap:wrap"><div style="flex:1 1 45%;margin-top:8px"><strong style="font-size:0.85rem">Needs</strong><ul style="font-size:0.8rem;line-height:1;margin-bottom:0;margin-top:6px;padding-left:20px"><li>Simple, user-friendly interface for easy score input</li><li>Step-by-step guidance</li></ul></div></div></div><img src="https://konopielko.com/img/riichi_persona2.png" alt="Persona" style="border:1px solid rgba(229, 231, 235, 0.45);border-radius:16px;height:100%;width:30%;object-fit:cover" class="mobile-none"></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="user-flow">User Flow<a class="hash-link" aria-label="Direct link to User Flow" title="Direct link to User Flow" href="https://konopielko.com/blog/riichi#user-flow">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Start of the flowchart begins with Player Names input, leading to Initial Points input, then transitions to Board View. In the Round Input stage, players can select Tsumo, Ron, Ryuukyoku, or Chonbo. If Tsumo is chosen, Winner Input follows, connecting to Riichi Players input. If Ron is chosen, the flow proceeds to Loser Player input, followed by a required Winner Input and up to two optional additional Winner Inputs, all eventually connecting to Riichi Players input. Ryuukyoku requires Tenpai Players input, which also connects to Riichi Players input. Chonbo requires Causing Players input, then proceeds to Is it Last Round? If yes, the game ends; if no, the process loops back to Start Round. Undo Round functionality loops back to Start Round as well. Winner Input includes Winner Player input, checks for Yakuman, optionally includes Yakuman Value and Causing Player input if Yakuman is selected, or requires Han Value and Fu Value if not. All Winner Inputs conclude at Winner Input End. The flowchart ends after End Game is reached." src="https://konopielko.com/assets/images/mermaid-diagram-2024-12-19-163835-8c1a70cca1c2ccce926ca68473dc5aa2.svg" width="1519" height="1607" class="img_ev3q"></p>
<p>After thinking about the user flow, I decided to focus on providing uniqlue value in the Round Input, as I found it to be the most complicated part of the <em>Mahjong Tracker</em> application, and a process with a lot of room for improvement.</p>
<p><img decoding="async" loading="lazy" alt="The image shows a step-by-step guide for a Mahjong game app interface. The first screen displays the game board with the player’s score. The second screen presents options for selecting the type of winning hand (Tsumo, Ron, Ryukyoku, Chombo). The third screen asks the user who won the round and allows the entry of points based on the hand’s value, including options to add Han and Fu. The fourth screen shows a prompt asking who declared Riichi. The fifth screen confirms the hand’s score, displaying the player’s points (e.g., Han: 1, Fu: 30). The final screen updates the score based on the result, with a summary of the scores for all players." src="https://konopielko.com/assets/images/input-bb713e94f1cc04c5e74c64638af38749.png" width="1568" height="1402" class="img_ev3q">
<em>Round Input Flow in the Mahjong Tracker app, source: <a href="https://play.google.com/store/apps/details?id=com.mahjongtracker.androidapp" target="_blank" rel="noopener noreferrer">Google Play</a></em></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="solution">Solution<a class="hash-link" aria-label="Direct link to Solution" title="Direct link to Solution" href="https://konopielko.com/blog/riichi#solution">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Riichi Tracker" src="https://konopielko.com/assets/images/riichitracker-4625b11a1a50623bf2df3afef2be89f4.jpg" width="1792" height="890" class="img_ev3q"></p>
<p><em>Riichi Tracker</em> is an iOS app designed to simplify and enhance scorekeeping for Riichi Mahjong. The app focuses on a clean, intuitive experience while addressing user pain points. It utilizes Swift, SwiftUI, SwiftData, and Swift Charts to build the app, taking advantage of native iOS components to enhance usability and performance.</p>
<ul>
<li><strong>Native iOS Design</strong>: Adhering to Apple’s Human Interface Guidelines, the app utilizes native iOS components, offering a look and feel familiar to iOS users.</li>
<li><strong>Simplified Hand Input</strong>: The hand input method consolidates all necessary information into a single sheet, making it easier for users to log rounds without navigating through multiple screens. The hand input clearly shows what is a button and features a wheel input for scores, requiring fewer taps.</li>
<li><strong>Integrated Score Chart</strong>: Including the score chart directly in the app, rather than relegating it to a website, provides a more seamless and informative experience.</li>
<li><strong>Offline Capability</strong>: Unlike the Android app previously discussed, Riichi Tracker works offline, ensuring uninterrupted gameplay.</li>
<li><strong>Time Tracking</strong>: Ability to track game time in the app, without the need to rely on an external timer</li>
<li><strong>Digital Riichi</strong>: Ability to play without any point counters, which are not included in cheapest mahjong sets</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Riichi Tracker" src="https://konopielko.com/assets/images/rtphoto2-07d95bc6d7eff284285bb4fc78a5980f.jpg" width="1248" height="832" class="img_ev3q"></p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="download">Download<a class="hash-link" aria-label="Direct link to Download" title="Direct link to Download" href="https://konopielko.com/blog/riichi#download">​</a></h2>
<a href="https://apps.apple.com/app/riichi-mahjong-tracker/id6505060342?platform=iphone" target="_blank"><img src="https://konopielko.com/img/AppStoreDownload.svg" alt="App Store" width="144" style="border-radius:0"></a>]]></content:encoded>
        </item>
    </channel>
</rss>