According tot he documentation, lightning:inputfield should work for checkbox type field.
Here is a snapshot of the code we have:
<aura:attribute name="dealershiptTeamRecord" type="IMP_Dealership_Team_Info__c" />
<force:recordData aura:id="recordHandler"
recordId="{!v.recordId}"
targetFields="{!v.dealershiptTeamRecord}"
recordUpdated="{!c.handleRecordChange}"
mode="EDIT"
fields="IMP_Team_Closed_Friday__c"
/>
<lightning:recordEditForm aura:id="recordViewForm"
recordId="{!v.recordId.Id}"
recordTypeId="{!v.recordId.RecordTypeId}"
objectApiName="IMP_Dealership_Team_Info__c"
onload="{!c.handleRecordChange}">
<lightning:inputField fieldName="IMP_Team_Closed_Monday__c"
value="{!v.dealershiptTeamRecord.IMP_Team_Closed_Monday__c}" />
</lightning:recordEditForm>
Where IMP_Team_Closed_Monday__c
is a checkbox field type,
In our case, the form, when saved, always sets the value to false not matter what the checkbox in the UI is set.