LV Recommends: Frozen yogurt, ice cream and sweets in the Iowa City area

Wilton’s Candy Kitchen in Wilton, Iowa

It can get painfully hot in Iowa in the summer, and what better to cool than a creamy, frozen treat? Even in winter, Iowa’s selection of ice cream, frozen yogurt and other frozen confections is top-notch.

Dane’s Dairy

1460 Willow Creek Ct., Iowa City

Tucked away behind a gas station on the outskirts of town lies an adorable time capsule of Iowa City history and delicious ice cream. Each spring, for the past 50 years, Dane’s Dairy, a drive-in ice cream shack staffed by the friendliest crew of gangly teens, reopens and blesses us with sublime cones of fresh strawberry soft serve. There are other frozen treats on their vast menu, including a signature ice cream bar made with hot fudge and peanuts, but it seems there are, sadly, never enough days in summer to try them all. Curiously, there is also an assortment of what appear to be carousel animals installed around the property, so you can sit on a little metal horse while you eat your cone, and pretend you’re in a David Lynch movie. Or just sit at one of the picnic tables; the ice cream will still be exactly what you need on a hot summer evening.

Funcrest Dairy and Grill

3977 W. Overlook Rd. N.E., Iowa City

Located near the Coralville Reservoir, Funcrest Dairy and Grill is open seasonally on evenings and weekends. Funcrest offers campers, cyclists and beach-goers traditional summer food: ice cream, burgers and fried goodness. The chocolate or vanilla soft serve, which is extra rich and creamy, can be served in a cone, and also with fruit or candy to make it a shake, sundae or “Cyclone” (Funcrest’s version of a Blizzard). Funcrest is also the halfway point on one of the area’s most popular bike rides, and there’s little better than a root beer float to help you refuel for the hilly return to Iowa City.

 Wilton’s Candy Kitchen
Wilton’s Candy Kitchen

Wilton’s Candy Kitchen

310 Cedar St., Wilton

A 30-minute drive will take you to Wilton, Iowa, home to the world’s longest continuously running ice cream parlor, open during warmer months. Opened in 1860, Wilton’s Candy Kitchen is listed on the National Historic Register, and the interior and exterior have changed little since they opened. Sit on one of the round chrome bar stools and talk to the current owners, George and Thelma Nopoulos, who will surely have a recommendation for what to order. The ice cream is homemade, along with many of the toppings. Try the banana split, or sip on a phosphate and reminisce.


Heyn’s Ice Cream Parlor

811 S. 1st Ave., Iowa City
Facebook page

Open year-round, Heyn’s has more than 40 flavors of hard ice cream, all made in-house. Flavors range from the decadent to the divine and include a stunningly creamy coconut chip, flecked with coconut and dark chocolate, as well as banana pudding, studded with vanilla wafers and as lavish as its namesake treat. There’s also a full menu of shakes and soft-serve confections. Hand-scooped pints are available to go, so if you can’t decide on a flavor, take some home and try them all.


132 S. Clinton St., Iowa City

Amid the profusion of fro-yo shops that have opened in the Iowa City area over the past couple of years, Yotopia stands apart. For one, it is owned locally by Veronica Tessler, who makes a point to engage the community through various projects, including public art. Tessler has also built relationships with Iowa dairies, and you can taste the efforts in what is certainly the creamiest frozen yogurt in town. And the inviting space, interactive row of self-serve machines and buffet of toppings make this a downtown sweet spot.


104 S. Linn St., Iowa City

If you are looking for a more formal atmosphere in which to enjoy your ice cream, head to Baroncini. Dessert is probably the best thing that the restaurant does, and like the rest of its menu, everything is inspired by Italian cuisine. Many of the desserts come with gelato, and while it isn’t made in house, most of the accoutrements are. The gelato “affogato con espresso e il biscotto” is pure pre-recession nostalgia: large in portion, lavish in presentation (served in a martini glass, no less) and brimming with chocolate sauce, espresso, whipped cream and strawberries. It is over-the-top indulgent, not to mention delicious.



[gravityform id="17" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper your-village-form_wrapper' id='gform_wrapper_17' ><a id='gf_17' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_17' id='gform_17' class='your-village-form' action='/sweets/#gf_17'> <div class='gform_body'><ul id='gform_fields_17' class='gform_fields top_label form_sublabel_below description_below'><li id='field_17_7' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3 style="font-weight:800; font-size:34px;">Let's get started</h3> <p style="font-size:18px;">Fill out this form and we'll contact you with information about marketing with Little Village!</p></li><li id='field_17_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' for='input_17_4_3' ></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gfield_trigger_change' id='input_17_4'> <span id='input_17_4_3_container' class='name_first' > <input type='text' name='input_4.3' id='input_17_4_3' value='' aria-label='First name' tabindex='2' aria-invalid="false" placeholder='First name'/> <label for='input_17_4_3' >First</label> </span> <span id='input_17_4_6_container' class='name_last' > <input type='text' name='input_4.6' id='input_17_4_6' value='' aria-label='Last name' tabindex='4' aria-invalid="false" placeholder='Last name'/> <label for='input_17_4_6' >Last</label> </span> </div></li><li id='field_17_5' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_5' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_17_5' type='text' value='' class='large' tabindex='6' placeholder='Company name' aria-required="true" aria-invalid="false" /></div></li><li id='field_17_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_17_3' ><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_17_3' type='text' value='' class='large' tabindex='7' placeholder='Your email address' aria-required="true" aria-invalid="false"/> </div></li><li id='field_17_8' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_17_8' >Email</label><div class='ginput_container'><input name='input_8' id='input_17_8' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_17' class='gform_button button' value='SUBMIT' tabindex='8' onclick='if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_17"]){return false;} window["gf_submitting_17"]=true; jQuery("#gform_17").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=17&amp;title=&amp;description=&amp;tabindex=1' /> <input type='hidden' class='gform_hidden' name='is_submit_17' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='17' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_17' value='WyJbXSIsIjlmNzc1YTEyZmZjNmYyODk5Mzk0NDM3ZjRlOGYyZDNmIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_17' id='gform_target_page_number_17' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_17' id='gform_source_page_number_17' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="183"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_17' id='gform_ajax_frame_17'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 17, '' );jQuery('#gform_ajax_frame_17').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_17');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_17').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_17').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_17').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_17').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_17').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_17').val();gformInitSpinner( 17, '' );jQuery(document).trigger('gform_page_loaded', [17, current_page]);window['gf_submitting_17'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_17').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_17').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [17]);window['gf_submitting_17'] = false;}, 50);}else{jQuery('#gform_17').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [17, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope","number_formats":[],"spinnerUrl":"https:\/\/\/wp-content\/plugins\/gravityforms-asdf111aasdfffs-nope\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 17) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [17, 1]) } ); </script>